我的数组中的一些元素是基于用户提交的空字符串。我需要移除这些元素。我有这个:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
但这并不奏效。$linksArray仍然有空元素。我也尝试过用empty()函数这样做,但结果是一样的。
我的数组中的一些元素是基于用户提交的空字符串。我需要移除这些元素。我有这个:
foreach($linksArray as $link)
{
if($link == '')
{
unset($link);
}
}
print_r($linksArray);
但这并不奏效。$linksArray仍然有空元素。我也尝试过用empty()函数这样做,但结果是一样的。
当前回答
foreach($arr as $key => $val){
if (empty($val)) unset($arr[$key];
}
其他回答
$myarray = array_filter($myarray, 'strlen'); //removes null values but leaves "0"
$myarray = array_filter($myarray); //removes all null values
另一行代码从数组中删除空(""空字符串)元素。
$array = array_filter($array, function($a) {return $a !== "";});
注意:这段代码故意保留null、0和false元素。
或者你可能想先修剪数组元素:
$array = array_filter($array, function($a) {
return trim($a) !== "";
});
注意:这段代码还删除了null和false元素。
试试这个** * *的例子
$or = array(
'PersonalInformation.first_name' => $this->request->data['User']['first_name'],
'PersonalInformation.last_name' => $this->request->data['User']['last_name'],
'PersonalInformation.primary_phone' => $this->request->data['User']['primary_phone'],
'PersonalInformation.dob' => $this->request->data['User']['dob'],
'User.email' => $this->request->data['User']['email'],
);
$or = array_filter($or);
$condition = array(
'User.role' => array('U', 'P'),
'User.user_status' => array('active', 'lead', 'inactive'),
'OR' => $or
);
foreach($arr as $key => $val){
if (empty($val)) unset($arr[$key];
}
只有一句话: 更新(感谢@suther):
$array_without_empty_values = array_filter($array);