从数组中取出一个值

时间:2018-01-11 06:18:30

标签: php arrays

我有一个

的数组
Array ( [0] => Array ( [picture] => 5a55ed8d8a5c8910913.jpeg 
                       [id] => 1284 
                       [price_range] => Rs 12000 - 9000 
                       [name] => Brown Beauty Office Chair ) 
        [1] => Array ( [picture] => 5a55eefeb9a8e255836.jpeg 
                       [id] => 1285 
                       [price_range] => Rs 8989 - 7000 
                       [name] => Chang Series Office Chair (Grey) 
                     ) 
      )

现在我在点击删除按钮时获取id的值,我获取的值是1284

我想从上面的数组中取出[id]=> 1284,然后使用foreach循环显示它。如何在不打扰其他id值和其他元素的情况下删除[id]=> 1284

在上面的数组中,我想删除一个特定的id值,只说[id] => 1284并保持所有其他元素完整无缺。

欢迎任何帮助。

3 个答案:

答案 0 :(得分:2)

使用array_searcharray_column,按id查找并按unset方法删除,

<?php
$array =  [
  ["id"=>123,"desc"=>"test1"],
  ["id"=>456,"desc"=>"test2"],
  ["id"=>789,"desc"=>"test3"],
];
$id = 456;
$index = array_search($id, array_column($array, 'id'));
unset($array[$index]);
print_r($array);
?>

Live Demo

Array
(
    [0] => Array
        (
            [id] => 123
            [desc] => test1
        )

    [2] => Array
        (
            [id] => 789
            [desc] => test3
        )

)

答案 1 :(得分:0)

既然你问过如何使用foreach实现它,我想出了这个。     

    $array = Array (Array ( 'picture' => '5a55ed8d8a5c8910913.jpeg','id' => 1284,'price_range' => 'Rs 12000 - 9000', 'name' => 'Brown Beauty Office Chair'),
        Array ( 'picture' => '5a55eefeb9a8e255836.jpeg','id' => 1285,'price_range' => 'Rs 8989 - 7000','name' => 'Chang Series Office Chair (Grey)')
        );
    foreach($array as $key => $val) {
        $id = $array[$key]['id'];
        if($id === 1284){            
            unset($array[$key]['id']);
        }

    }
    print_r($array)
    ?>

答案 2 :(得分:0)

您也可以使用它:

<?php 
$element_to_remove = 1284;
$i = 0;
foreach($array as $this_arr){

    $index = array_search($element_to_remove, $this_arr);
    //unset($this_arr[$index]); this formate does not remove element from array

    //but below works fine
    if(isset($array[$i][$index])){
        unset($array[$i][$index]);  
    }
}
print_r($array);
?>