【问题标题】:Array check if object key has same value数组检查对象键是否具有相同的值
【发布时间】:2021-12-10 16:06:46
【问题描述】:

我想将旧数组中的值推送到新数组。推送时我正在检查对象值是否已经存在。仅当新数组中不存在相同的对象值时才应推送该值。这是我的代码。

$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);
        }
    }

【问题讨论】:

标签: arrays laravel sorting


【解决方案1】:

如果我理解正确,您可以使用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 中,那么它将被推送。否则不执行操作。

【讨论】:

    【解决方案2】:

    array_push 在这种情况下是错误的。 试试这个代码:

    foreach ($data as $nkey => $value) {
        if (count($sorted_array) > 0) {
            if ($sorted_array[$nkey]['store'] != $value['store']) {
                $sorted_array[$nkey] = $value;
            }
        }
    }
    

    希望能帮到你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2019-03-31
      • 2020-07-09
      • 2020-12-27
      相关资源
      最近更新 更多