删除空数组元素

删除空数组元素

根据用户提交的内容,数组中的某些元素是空字符串。我需要去除这些元素。我有这个:

foreach($linksArray as $link){
    if($link == '')
    {
        unset($link);
    }}print_r($linksArray);

但不管用,$linksArray仍然有空元素。我也试过用empty()功能,但结果是相同的。


阿晨1998
浏览 308回答 3
3回答

忽然笑

在处理字符串数组时,只需使用array_filter(),可以方便地为您处理所有这些:print_r(array_filter($linksArray));记住如果没有提供回调,数组的所有条目都等于FALSE(见转换为布尔值)将被移除。因此,如果您需要保留的元素是确切的字符串'0',您将需要一个自定义回调://&nbsp;PHP&nbsp;<&nbsp;5.3print_r(array_filter($linksArray,&nbsp;create_function('$value',&nbsp;'return&nbsp;$value&nbsp;!==&nbsp;"";'))); //&nbsp;PHP&nbsp;5.3&nbsp;and&nbsp;laterprint_r(array_filter($linksArray,&nbsp;function($value)&nbsp;{&nbsp;return&nbsp;$value&nbsp;!==&nbsp;'';&nbsp;}));

慕工程0101907

你可以用array_filter若要删除空元素,请执行以下操作:$emptyRemoved&nbsp;=&nbsp;array_filter($linksArray);如果你有(int) 0在数组中,可以使用以下内容:$emptyRemoved&nbsp;=&nbsp;remove_empty($linksArray);function&nbsp;remove_empty($array)&nbsp;{ &nbsp;&nbsp;return&nbsp;array_filter($array,&nbsp;'_remove_empty_internal');}function&nbsp;_remove_empty_internal($value)&nbsp;{ &nbsp;&nbsp;return&nbsp;!empty($value)&nbsp;||&nbsp;$value&nbsp;===&nbsp;0;}编辑:也许你的元素本身并不是空的,但包含一个或多个空格.在使用array_filter$trimmedArray&nbsp;=&nbsp;array_map('trim',&nbsp;$linksArray);

慕少森

关于这个话题最流行的答案是绝对不正确的。考虑以下PHP脚本:<?php $arr&nbsp;=&nbsp;array('1',&nbsp;'',&nbsp;'2',&nbsp;'3',&nbsp;'0');//&nbsp;Incorrect:print_r(array_filter($arr));//&nbsp;Correct:print_r(array_filter($arr,&nbsp;'strlen'));这是为什么?因为包含单个‘0’字符的字符串也计算为布尔False,所以即使它不是空字符串,它仍然会被过滤。那会是个窃听器。将内置的strlen函数作为筛选函数传递将有效,因为它返回非空字符串的非零整数和空字符串的零整数。非零整数在转换为布尔值时总是计算为真,而零整数在转换为布尔值时总是计算为false。所以,绝对、明确、正确的答案是:$arr&nbsp;=&nbsp;array_filter($arr,&nbsp;'strlen');
打开App,查看更多内容
随时随地看视频慕课网APP