如何使用每个循环在前一个数组中设置新索引

时间:2014-08-11 13:16:06

标签: php foreach

这是我的代码

array 1:
 Array
 (

   [0] => Array
    (
        [id] => 42166
        [Company_Website] => http://www.amphenol-highspeed.com/
        [company_name] => Amphenol High Speed Interconnect
        [city_name] => New York
        [country_name] => USA
        [comp_img] => 
    )

 )

阵列2:

    Array
    (
    [0] => Array
    (
        [Product_Name] => CX to CX,Amphenol High  Speed Active,Serial Attached SCSI
        [company_id] => 42166
    )

    )

php代码:

    $total = count($result);
    $i=0;
    foreach ($result as $key=>$value) {
     $i++;
      $company_id= implode(",",(array)$value['id']);
     if ($i != $total)
      echo',';
    }

获取数组2的代码:

      foreach ($res as $key1=>$value1) {

        echo  $total;
        $event[$value['company_name']] = $value1['Product_Name'];

        if($value1['company_id']==$company_id )
        {
          echo " match";
          //$key[['company_name']]= $value1['Product_Name'];


        }
        else
        {
         echo "not matched";
        }
    }
  • 如果company_id与另一个数组的id匹配,我需要创建一个新索引。
  • 即product_name。
  • 如果产品名称只是创建索引,否则显示为空。
  • 我想在key =>中显示价值。
  • 输出应该是:

       Array
     (
      [0] => Array
       (
        [id] => 42166
        [Company_Website] => http://www.amphenol-highspeed.com/
        [company_name] => Amphenol High Speed Interconnect
        [city_name] => New York
        [country_name] => USA
        [comp_img] =>
       [Product_Name] => CX to CX,Amphenol High  Speed Active,Serial Attached SCSI 
      )
    
    )
    

1 个答案:

答案 0 :(得分:0)

当您开始使用公司ID作为密钥时,阵列中密钥的所有问题都将消失。

要重新索引数组,您可以使用:

$array1 = array_combine(array_column($array1, 'id'), $array1);
$array2 = array_combine(array_column($array2, 'company_id'), $array2);

在输出中,您将获得:

array 1:

 Array
 (
   [42166] => Array
    (
      [id] => 42166
      ...
    )
 )

array 2看起来很相似 - 作为密钥。

因此,使用id作为键访问元素现在是件小事。