我想将旧数组中的值推送到新数组。当推送时我正在检查对象值是否已经存在。仅当新数组中不存在相同的对象值时才应推送该值。这是我的代码。
$sorted_array = array();
foreach ($data as $nkey => $value) {
if (count($sorted_array) > 0) {
dd($sorted_array[$nkey]);
if ($sorted_array[$nkey]['store'] != $value['store']) {
array_push($sorted_array, $value);
}
} else{
array_push($sorted_array, $value);
}
}
如果我理解正确的话,你可以使用
in_array
函数轻松处理它:
$sorted_array = array();
foreach ($data as $nkey => $value) {
if ( !in_array($value, $sorted_array) ) {
array_push($sorted_array, $value);
}
}
in_array
函数返回布尔值。在我的代码中,如果 $value
参数不在 $sorted_array
中,那么它将被推送。否则不执行操作。
array_push()
在这种情况下是错误的。
试试这个代码:
foreach ($data as $nkey => $value) {
if (count($sorted_array) > 0) {
if ($sorted_array[$nkey]['store'] != $value['store']) {
$sorted_array[$nkey] = $value;
}
}
}