猿问

如何根据键删除数组列表?

例如 :


Array   

(    

[0] => Array 

 (

     [id] => 23

     [merchant_id] => 23   

 )

[1] => Array 

 (

     [id] => 24

     [merchant_id] => 46  

 )

)

我想删除除46之外的merchant_id列表,操作后:


Array   

    (    

    [0] => Array 

     (

         [id] => 24

         [merchant_id] => 46  

     )

    )

删除此数组列表的最佳方法是什么?


慕妹3146593
浏览 152回答 3
3回答

小唯快跑啊

您可以使用array_filter以下方法获得结果// suppose your data is in $data variable$data = [  ['id' => 23,     'merchant_id' => 23],  ['id' => 23,     'merchant_id' => 46], ];//return true only if marchant_id == 46 $filtered_array = array_filter($data,function($datum){                     return $datum["merchant_id"] == 46;                  });

MMMHUHU

您好请检查下面的代码$array = array(     array('id' => 23, 'merchant_id' => 23),    array('id' => 24, 'merchant_id' => 46),    array('id' => 25, 'merchant_id' => 34),    array('id' => 26, 'merchant_id' => 46),);$final = array();foreach ($array as $key => $value) {    if($value['merchant_id'] == 46){        $final[] = $value;    }}print_r($final);

胡子哥哥

如果您正在努力使用数组函数,一个简单的 foreach 循环和对您感兴趣的领域的测试会很好$A = [  ['id' => 23, 'merchant_id' => 23  ],        ['id' => 24, 'merchant_id' => 46  ],        ['id' => 25, 'merchant_id' => 21  ],        ['id' => 26, 'merchant_id' => 29  ],    ];foreach ( $A as $key => $t ) {    if( $t['merchant_id'] != 46 ){        unset($A[$key]);    }}print_r($A);结果Array(    [1] => Array        (            [id] => 24            [merchant_id] => 46        ))
随时随地看视频慕课网APP
我要回答