dqc2017 2017-03-10 17:35
浏览 68
已采纳

如何使用php中的值在多维数组中选择数组

To put it right lets say I have an array stores-

array:3 [▼
  0 => "store3"
  1 => "store"
  2 => "store2"
]

This is the array which holds values.

Other array products holds all the data:-

array:2 [▼
  0 => array:2 [▼
    "store" => "store"
    "product" => "1"
  ]
  1 => array:2 [▼
    "store" => "store"
    "product" => "4"
  ]
  2 => array:2 [▼
    "store" => "store2"
    "product" => "2"
  ]
  3 => array:2 [▼
    "store" => "store2"
    "product" => "3"
  ]
  4 => array:2 [▼
    "store" => "store3"
    "product" => "7"
  ]
  5 => array:2 [▼
    "store" => "store3"
    "product" => "11"
  ]
]

What I want is that a value is picked from stores array eg store3 then it is compared with products array and being searched and extract all the arrays inside products array which has the store value store3 and store it in another new array named store3

I have tried to do it but it was very wrong I mean it didn't work! I will post it if anyone say so but can anyone accomplish this?

My work:-

$temp = array();
  for($i=0; $i<count($stores); $i++)
  {
    //$stores[$i] = array();

    foreach($products as $p)
    {
      if(session($stores[$i]) == $p['store'])
      {
        if(count(session($stores[$i])) == 0)
        {
          $temp['product'] = $p['product'];
          session($stores[$i])->push($temp['product']);
        }
        else if(!in_array($p['product'],$stores[$i]))
        {
          $temp['product'] = $p['product'];
          session($stores[$i])->push($temp['product']);
        }
      }
    }
  }
  • 写回答

4条回答 默认 最新

  • doutun9179 2017-03-10 17:47
    关注

    Do it like below:-

    $final_array = array();
    foreach($array1 as $arr){
      foreach($array2 as $arr2){
         if($arr == $arr2['store']){
           $final_array[$arr]['product'][] = $arr2['product'];
         }
      }
    }
    echo "<pre/>";print_r($final_array);
    

    Output:-https://eval.in/752498

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?