Jump to content

[SOLVED] Creating associative array from two other arrays


ninedoors

Recommended Posts

I am relatively new to php and I need to create an associative array from two other arrays.  I thought I knew how to do it but I keep getting syntex errors.  The two arrays I that I will be creating the associative array from are and will always be parrallel arrays.  Hopefully this is possible because I want to be able to put the assoc. array through a foreach loop.  Here is what I have, can someone tell me if I am even close?

 

<?

$array_homepenalties = array(3, 5, 8, 24);
$array_homepenmins = array(2, 2, 5, 4);

$len = count($array_homepenalties);

for($i = 0; $i , $len; ++$i)	
{
$assoc_array_hpen[ . $array_homepenalties[$i] . ] = [ . $array_homepenmins[$i] . ];
}

print_r($assoc_array_hpen);

?>

 

Thanks Nick

try

<?$array_homepenalties = array(3, 5, 8, 24);
$array_homepenmins = array(2, 2, 5, 4);

$len = count($array_homepenalties);

for($i = 0; $i < $len; ++$i)	
{
$assoc_array_hpen[  $array_homepenalties[$i]  ] =  $array_homepenmins[$i];
}
print_r($assoc_array_hpen);
?>

or

use array_combine() function

Ok, I found this work around for array_combine on php.net.  I need this because my server is only running php 4.  So array_combine will not work as it is undefined. So here it is

function array_combine($arr1, $arr2)
{
  $buffer = array();
  foreach($arr1 as $key1 => $arr_1)
  {
    foreach($arr2 as $key2 => $arr_2)
      $buffer[$arr_1] = $arr_2;
  }
  return $buffer;
} 

 

Now when I try to call this function I get an assoc. array but the values are incorrect.  Here is thye example I used:

$array_homepens = array(3, 5, 8, 24);
$array_homepenmins = array(2, 2, 5, 4);

$len = count($array_homepenalties);

$assoc_array_hpen = array_combine($array_homepens, $array_homepenmins);  								

print_r($assoc_array_hpen);

 

And $assoc_array_hpen = Array ( [3] => 4 [5] => 4 [8] => 4 [24] => 4 ), which is clearly incorrect as it should be:

 

Array ( [3] => 2 [5] => 2 [8] => 5 [24] => 4 )

 

Can anyone help me figure this out?  Thanks Nick

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.