1

Following is my array and i want to remove specific value from array.

Array
(
    [0] => Array
        (
            [name] => categoryfilter
            [value] => 127
        )

    [1] => Array
        (
            [name] => price_min
            [value] => sd
        )

    [2] => Array
        (
            [name] => price_max
            [value] => sdsd
        )

    [3] => Array
        (
            [name] => action
            [value] => myfilter
        )

    [4] => Array
        (
            [name] => quantity
            [value] => 1
        )

    [5] => Array
        (
            [name] => quantity
            [value] => 1
        )

    [6] => Array
        (
            [name] => quantity
            [value] => 1
        )

    [7] => Array
        (
            [name] => quantity
            [value] => 0
        )

    [8] => Array
        (
            [name] => quantity
            [value] => 0
        )

    [9] => Array
        (
            [name] => quantity
            [value] => 0
        )

    [10] => Array
        (
            [name] => quantity
            [value] => 1
        )
);

I want to remove all quantity key items from array .

I have tried using following way but not remove display same thing.

if (($key = array_search('quantity', $_POST['product'])) !== false) {
    unset($_POST['product'][$key]);
}
echo "<pre>";print_r($_POST['product']);
  • @SzántóZoltán He doesn't want to delete a whole column, he wants to delete the rows where a column matches a value. – Barmar Oct 01 '19 at 09:50

2 Answers2

1

Use array_filter with callback function

 $f = array_filter($a, function($v){return $v['name'] != 'quantity';});

Working example : https://3v4l.org/DqoLj

Rakesh Jakhar
  • 6,380
  • 2
  • 11
  • 20
1

Loop through the array.

foreach ($_POST['product'] as $k => $p) {
    if ($p['name'] == 'quantity') {
        unset($_POST['product'][$k];
    }
}
Barmar
  • 741,623
  • 53
  • 500
  • 612