user11636668
user11636668

Reputation:

How to create key from the array value?

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!

Upvotes: 0

Views: 126

Answers (3)

Md Majadul Islam
Md Majadul Islam

Reputation: 125

    $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
)

Upvotes: 0

A l w a y s S u n n y
A l w a y s S u n n y

Reputation: 38552

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

Upvotes: 1

Lawrence Cherone
Lawrence Cherone

Reputation: 46650

Another approach is to use array_column and array_combine

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

https://3v4l.org/boAOI

Upvotes: 1

Related Questions