0

I have an array that contains two values, but i need upper value as key of lower value like value of name replace with value and also remove name from array.

Array
(
    [0] => Array
        (
            [name] => firt_name
            [value] => Robin
        )

    [1] => Array
        (
            [name] => last_name
            [value] => Singh
        )

    [2] => Array
        (
            [name] => email
            [value] => [email protected]
        )

    [3] => Array
        (
            [name] => password
            [value] => 12345
        )
)

Here is the code

function key_replace($params = array())
{
    if (!empty($params)) {
        $array[] = array();
        foreach ($params as $key => $value) {
            $array[$value['name']] = $value['value'];
        }
        print_r($array);
    }
}

Any solution appreciated!

2
  • 1
    please show your code effort. Commented Jul 3, 2019 at 4:29
  • @AlivetoDie Please check updated code Commented Jul 3, 2019 at 4:33

3 Answers 3

1

Another approach is to use array_column and array_combine

array_combine(array_column($array, 'name'), array_column($array, 'value'));

https://3v4l.org/boAOI

Sign up to request clarification or add additional context in comments.

4 Comments

I not sure on perf over a simple foreach like other answers though.
I'm also thinking about that because foreach() seems a good candidate for this
I did check, and your demo does 2 less operations, also if the data is big id go for a generator and a foreach over this.
totally agreed sir
1

A Simple foreach() will do the trick for you.

$result = [];
foreach($array as $k=>$v){
    $result[$v['name']] = $v['value'];
}
print_r($result);

WORKING DEMO: https://3v4l.org/hH39i

Comments

0
    $datas = $array = array
    (
        '0' => array
            (
                'name' => 'firt_name',
                'value' => 'Robin'
            )
,
        '1' => array
            (
                'name' => 'last_name',
                'value' => 'Singh'
            )
,
        '2' => array
            (
                'name' => 'email',
                'value' => '[email protected]'
            )
,
        '3' => array
            (
                'name' => 'password',
                'value' => '12345',
            )
,
        '4' => array
            (
                'name' => 'phone',
                'value' => 'skdsjdkdjskd'
            )
,
        '5' => Array
            (
                'name' => 'city',
                'value' => 'dskjdksjd'
            )
,
        '6' => Array
            (
                'name' => 'state',
                'value' => 'kjksdjskdsk'
            )

    );

 $array = '';
        foreach ($datas as $key => $value) {
            $array[$value['name']] = $value['value'];
        }

echo '<pre>';

print_r($array);

echo '</pre>';


Array
(
    [firt_name] => Robin
    [last_name] => Singh
    [email] => [email protected]
    [password] => 12345
    [phone] => skdsjdkdjskd
    [city] => dskjdksjd
    [state] => kjksdjskdsk
)

Comments