簡體   English   中英

在PHP中可以將兩個數組組合在一起嗎?

[英]Is this possible for combining of two arrays, in PHP?

我有兩個數組的簽署者指定人 名稱數組具有定界符"|" 表示1個簽署者有2個指定。 我想輸出該元素在定界符中是否有2個值,在其他數組中有1個。 它將產生另一個副本或克隆。 像這樣。

$signatories = array('Allan','Robert','Maria');

$designations = array('CEO','CEO|COO','MANAGER|OIC|COO');

我的預期輸出:

Allan - CEO

Robert - CEO
Robert - COO

Maria - MANAGER
Maria - OIC
Maria- COO

您需要兩個循環,並且可以使用相同的索引。

$signatories = array('Allan|Joshua|Ronald', 'Robert|Mellisa', 'Maria');
$designations = array('CEO','CEO|COO','MANAGER|OIC|COO');

$cs = count($signatories);
for ($i=0; $i<$cs; $i++) {
  $desigs = explode('|', $designations[$i]);
  $signas = explode('|', $signatories[$i]);
  foreach ($desigs as &$desig) {
    foreach ($signas as &$signa) {
      echo $signa.' - '.$desig.'<br>';
    }
  }
}

使用foreach循環和explode()函數,您可以將兩個數組合並為一個數組。

    $signatories = array('Allan','Robert','Maria');

    $designations = array('CEO','CEO|COO','MANAGER|OIC|COO');

    $combinedArray = array();
    foreach($signatories as $key => $value){
        $combinedArray[] = array('name' => $value, 'designations' => explode("|",$designations[$key]));
    }
    print_r($combinedArray);die;

$ combinedArray數組同時具有名稱和名稱數組。

該數組的輸出-

    Array
(
    [0] => Array
        (
            [name] => Allan
            [designations] => Array
                (
                    [0] => CEO
                )

        )

    [1] => Array
        (
            [name] => Robert
            [designations] => Array
                (
                    [0] => CEO
                    [1] => COO
                )

        )

    [2] => Array
        (
            [name] => Maria
            [designations] => Array
                (
                    [0] => MANAGER
                    [1] => OIC
                    [2] => COO
                )

        )

)

有點混亂,但是,只有一個循環。

<?php

$signatories = array('Allan','Robert','Maria');
$designations = array('CEO','CEO|COO','MANAGER|OIC|COO');

$i = 0;
foreach($designations as $designation) {

    $newArr = explode('|',$designation);
    echo $signatories[$i].' - '.implode('<br>'.$signatories[$i].' - ',$newArr).'<br><br>';

$i++;
}

另一種方式

$signatories = array('Allan','Robert','Maria');
$designations = array('CEO','CEO|COO','MANAGER|OIC|COO');


foreach($signatories as $key=>$val)
{  
   $exp = explode('|',$designations[$key]);
    foreach($exp as $dsg)
    {
        echo $val.' - '.$dsg;
        echo "<br>";
    }
    echo "<br>";
}

您的輸出將是

Allan - CEO

Robert - CEO
Robert - COO

Maria - MANAGER
Maria - OIC
Maria - COO

暫無
暫無

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

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