簡體   English   中英

通過匹配鍵組合多個不相等的數組,並獲取匹配鍵的值

[英]Combining multiple unequal arrays by matching the keys and get the values of the matched keys

我想通過鍵匹配它們來組合6個索引數組,然后將值插入到我的表中,我該怎么做?

[typeSex] => Array
    (
        [0] => broiler
        [1] => layer
    )    

[noheads] => Array
    (
        [0] => 123
        [1] => 321
    )    

[origin] => Array
    (
        [0] => asd
        [1] => sda
        [2] => 
        [3] => 
    )    

[live] => Array
    (
        [0] => 123
        [1] => 222
    )    

[carcass] => Array
    (
        [0] => 312
        [1] => 341
        [2] => 
        [3] => 
    )

[totalcarcass] => Array
    (
        [0] => 231
        [1] => 321
        [2] => 
        [3] => 
    )

我只能組合兩個數組,這是我在另一個問題中得到的代碼

$typeSex = //the typeSex array;   
$noheads = //the noheads array;
$temp_array = array();
foreach($typeSex as $k => $v){
    if(array_key_exists($k, $noheads)){
        $temp_array[$k] = array($v, $noheads[$k]);
    }
}

請幫助我,謝謝。

根據您的問題,您想要的輸出是嗎?

array[
      [typeSex=>'broiler', noheads=>123, origin=>'asd', live=>123, carcass=>312, totalcarcass=>231],
      [typeSex=>'layer', noheads=>321, origin=>'sda', live=>222, carcass=>341, totalcarcass=>321],
      [typeSex=>null, noheads=>null, origin=>null, live=>null, carcass=>null, totalcarcass=>null],
      [typeSex=>null, noheads=>null, origin=>null, live=>null, carcass=>null, totalcarcass=>null],
]

如果是,那么這可能是答案:

        $number_of_items = [];
        $result = [];
        //get the number of items in every array and put it in an array
        array_push($number_of_items, count($typeSex), count($noheads), count($origin), count($live), count($carcass), count($totalcarcass));

        //get the largest number of items
        $max = max($number_of_items);

        //add the result variable $result
        for($i=0; $i < $max; $i++){
            array_push($result, array(
                 "typeSex" => isset($typeSex[$i])? $typeSex[$i] : null,
                 "noheads" => isset($noheads[$i])? $noheads[$i] : null,
                 "origin" => isset($origin[$i])? $origin[$i] : null,
                 "live" => isset($live[$i])? $live[$i] : null,
                 "carcass" => isset($carcass[$i])? $carcass[$i] : null,
                 "totalcarcass" => isset($totalcarcass[$i])? $totalcarcass[$i] : null,
            ));
        }

嘗試這個

$arr_temp = array();
foreach($your_array as $key=>$arr)
{ 
    foreach($arr as $k=>$v)
    { 
       if($v!="")
       {
            $arr_temp[$k][] = $v;     
       }
    }    
}

print_r($arr_temp);

是您需要的嗎?

$typeSex = array("typeSex" => array("broiler", "layer"));
$noheads = array("noheads" => array(123,321));
$origin  = array("origin" => array("asd","sda","",""));
$live    = array("live" => array(123,222));
$carcass =array("carcass" =>  array(312,341,'',''));
$totalcarcass = array("totalcarcass" => array(231,321));

$final = array_merge($typeSex, $noheads, $origin, $live, $carcass, $totalcarcass);


foreach ($final as $key=>$val)
{

        $res[] = $val[0];
        $ab[] = $val[1]; 
}

$aa = array($res,$ab);

echo "<pre>";
print_r($aa);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM