Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于密钥匹配取消设置数据_Php_Laravel - Fatal编程技术网

Php 基于密钥匹配取消设置数据

Php 基于密钥匹配取消设置数据,php,laravel,Php,Laravel,资料 上面是存储在数组中的数据,如果属性存在,任何人都知道如何取消设置数据,因此我想取消设置数据id9962。因此,数据如下所示 Array ( [0] => Array ( [id] => 9962 [value] => Amart ) [1] => Array ( [id] => attrval_9962

资料

上面是存储在数组中的数据,如果属性存在,任何人都知道如何取消设置数据,因此我想取消设置数据id9962。因此,数据如下所示

Array
(
    [0] => Array
        (
            [id] => 9962
            [value] => Amart
        )

    [1] => Array
        (
            [id] => attrval_9962
            [value] => k
        )

    [2] => Array
        (
            [id] => 9952
            [value] => Denim
        )

    [3] => Array
        (
            [id] => attrval_9952
            [value] => l
        )
   [4] => Array
    (
        [id] => 5788
        [value] => Grey
    )

   [5] => Array
    (
        [id] => 21307
        [value] => Long Sleeve
    )

)

这意味着我只想存储属性值存在的数据,否则将存储回默认值。

首先获取一个包含

Array
    (
        [0] => Array
            (
                [id] => attrval_9962
                [value] => k
            )

        [1] => Array
            (
                [id] => attrval_9952
                [value] => l
            )
       [2] => Array
    (
        [id] => 5788
        [value] => Grey
    )

[3] => Array
    (
        [id] => 21307
        [value] => Long Sleeve
    )

    )
$filtered = array_filter($array, function ($data) {
    return strpos($data['id'], 'attrval_') !== false;
});
然后找出两个数组的差异

$filtered =   array_filter($data, function($element){
  return strpos($element['id'], 'attrval_') !== false;
});
你可以用它来做

$result = array_udiff($data, $filtered, function($a, $b) {
  return intval($a != $b);
});

$result仍将包含我尝试过的所有数据,根据$data数组,$result将只包含两条记录
$result = [];
foreach(data as $value){
    if(strpos($value['id'],'attrval_) !== false){
        $result[] = $value
    }
}