【发布时间】:2021-07-02 02:15:15
【问题描述】:
我有一个结构相同的元素数组。 这是一个例子:
<?php
$arr =
[
[
"el_name" => "abcd",
"el_data" => "raw_dataè_15264df156g18df",
],
[
"el_name" => "efgh",
"el_data" => "raw_data_sd25g",
],
[
"el_name" => "ijkl",
"el_data" => "raw_data_dfdfgn48",
],
[
"el_name" => "mnop",
"el_data" => "raw_data_²545",
],
];
$new_el = [
"el_name" => "efgh",
"el_data" => "raw_data_sd25g",
];
我想添加$new_el,前提是它尚未出现在$arr 中。如果php有array_element_exists()函数会很方便;-)
为了这个问题,我尝试了这个:
$exists = false;
foreach($arr as $el) {
$equal=true;
foreach(array_keys($el) as $key) {
if(isset($new_el[$key]) && $new_el[$key] === $el[$key]) {
null;
//equality
} else {
$equal = false;
}
}
if($equal === true) {
$exists = true;
break;
}
}
if($exists === true ) {
echo '$new_el already exists in $arr' . PHP_EOL;
} else {
echo '$new_el doesn\'t still exists in $arr' . PHP_EOL;
$arr[] = $new_el;
}
您认为还有更高效、“更简单”的方法吗?...
【问题讨论】: