Feature
Feature

Reputation: 163

Convert PHP array into Key => Value Array

Total PHP Noob and I couldn't find an answer to this specific problem. Hope someone can help!

$myvar is an array that looks like this:

Array (  
 [aid] => Array (  
  [0] => 2  
  [1] => 1  
 )  
 [oid] => Array(  
  [0] => 2  
  [1] => 1  
 )  
)

And I need to set a new variable (called $attributes) to something that looks like this:

$attributes = array(
 $myvar['aid'][0] => $myvar['oid'][0], 
 $myvar['aid'][1] => $myvar['oid'][1], 
 etc...
);

And, of course, $myvar may contain many more items...

How do I iterate through $myvar and build the $attributes variable?

Upvotes: 3

Views: 19745

Answers (4)

Nasir Iqbal
Nasir Iqbal

Reputation: 872

Your requirements are not clear. what you mean by "And, of course, $myvar may contain many more items..." there is two possibilties

1st. more then two array in main array. like 'aid', 'oid' and 'xid', 'yid' 2nd. or two main array with many items in sub arrays like "[0] => 2 [1] => 1 [2] => 3"

I think your are talking about 2nd option if so then use following code

$aAid = $myvar['aid'];
$aOid = $myvar['oid'];

foreach ($aAid as $key => $value) {
  $attributes['aid'][$key] = $value;
  $attributes['oid'][$key] = $myvar['oid'][$key];
}

Upvotes: 0

Michael Roosing
Michael Roosing

Reputation: 69

You can itterate though an array with foreach and get the key and values you want like so

$attributes = array() 
foreach($myvar as $key => $val) {
   $attributes[$key][0] = $val;
}

Upvotes: -1

Gaurav
Gaurav

Reputation: 28755

use array_combine()

This will give expected result.

http://php.net/manual/en/function.array-combine.php

Usage:

$attributes = array_combine($myArray['aid'], $myArray['oid']);

Will yield the results as requested.

Upvotes: 7

harpax
harpax

Reputation: 6106

Somthing like this if I understood the question correct

$attributes = array();
foreach ($myvar['aid'] as $k => $v) {
    $attributes[$v] = $myvar['oid'][$k]; 
}

Upvotes: 0

Related Questions