Maha Dev
Maha Dev

Reputation: 3965

Remove specific string from whole associative array items

I have an associative array. I want to remove specific string from whole array items. Here is the structure of my array:

Array
(
    [50808] => Array
        (
            [quantity] => 2
            [name] => asv (test)
        )

    [50809] => Array
        (
            [quantity] => 2
            [name] => 37 (test)
        )

    [50810] => Array
        (
            [quantity] => 3
            [name] => 38 (test)
        )

)

Output i want:

Array
(
    [50808] => Array
        (
            [quantity] => 2
            [name] => asv
        )

    [50809] => Array
        (
            [quantity] => 2
            [name] => 37
        )

    [50810] => Array
        (
            [quantity] => 3
            [name] => 38
        )

)

I know its very simple using loop but i want to do it without loop.

Upvotes: 0

Views: 44

Answers (1)

Chetan Ameta
Chetan Ameta

Reputation: 7896

Use array_map function

<?php
$array = Array
(
    '50808' => Array
        (
            'quantity' => 2,
            'name' => 'asv (test)',
        ),

    '50809' => Array
        (
            'quantity' => 2,
            'name' => '37 (test)'
        ),

    '50810' => Array
        (
            'quantity' => 3,
            'name' => '38 (test)'
        )

);

echo '<pre>';

$new_array = array_map(function($val){
    $val['name'] = trim(str_replace('(test)', '', $val['name']));
    return $val;
}, $array);

print_r($new_array);

Output:

Array
(
    [50808] => Array
        (
            [quantity] => 2
            [name] => asv
        )

    [50809] => Array
        (
            [quantity] => 2
            [name] => 37
        )

    [50810] => Array
        (
            [quantity] => 3
            [name] => 38
        )

)

Another method can be array_walk function:

array_walk($array, function(&$val){
    $val['name'] = trim(str_replace('(test)', '', $val['name']));
});

print_r($array); //out put: desired output

Upvotes: 1

Related Questions