2015-05-04 153 views
0

我要推我的數組不同的值,例如在工作,我要像一個數組:多維數組

 array(2) { ["A056"]=> array(1) { 
          [0]=> string(21) "User1name firstname " } 
          [1]=> string(21) "User2name firstname " }  
          [2]=> string(21) "User3name firstname " } 
       ["A057 etc..."]=> array(1) { [0]=> string(21) "User1name firstname " } 
              [1]=> string(21) "User2name firstname " }  
              [2]=> string(21) "User3name firstname " } 

所有值必須添加[「A056」]陣列上。 這是一個多維數組,我該如何繼續? : 我的代碼是:

for($i=0;$i<$arrLength-1;$i++){ 
     $arrayListeAgence= array($pieces[0]=> array($listUsers[$i]." ".$listUsers[$i+1])); 
    } 

爲什麼我只得到了最後的值(吉恩查爾斯是我名單的最後一個值):

array(2) { ["A056"]=> array(1) { [0]=> string(21) "Jean Charles " } 

我的作品陣列像這樣:

array(4) { [0]=> string(6) "A057" [1]=> string(108) "KEO/Micka/KIRAN/Maria/ATHISA/HIS/SURA/Beat/SPAR/Laura/DARTI/Sona/VANNINI/Priya" [2]=> string(6) "A058" [3]=> string(59) "KEO/Micka/KIRAN/MARIA/ATHISA/MAHIS/NICOLE/Laura" } 

USERLIST數組:(需要迭代並將值放在主陣列arrayListeAgence上)

$listUsers=""; 
    for($k = 1,$i=0; $k <sizeof($pieces); $k+=2){ 

     $listUsers [$k]= explode("/", $pieces[$k]); 
    $i=$i+1; 
    } 
    print_r($listUsers); 

輸出:

Array ([1] => Array ([0] => KEO [1] => Micka [2] => KIRAN [3] => Maria [4] => MATHISA [5] => ATHISA [6] => SUDA [7] => Beat [8] => SPAR [9] => Laurence [10] => ARTTI [11] => Sona [12] => NaNINI [13] => Priya) [3] => Array ([0] => KEO [1] => Micka [2] => KIRAN [3] => Maria[4] => ATHISA [5] => ATHISA [6] => NICOLE [7] => Laura)) 
+0

請告訴我們預期的輸出。 (注意:不能有多個具有相同值的鍵!) – Rizier123

+0

期望的輸出是:'array(2){[「A056」] => array(1){[0] => string(21)「 User1name firstname「} [1] => string(21)」User2name firstname「} [2] => string(21)」User3name firstname「}'換句話說,它不會遞增,所有的值都存儲在[0]爲什麼? – TheJoker

+1

@TheJoker在問題中發佈它,而不是在評論中;) – Masiorama

回答

0

在這裏你去:

<?php 

$pieces = array(
    "A057", 
    "KEO/Micka/KIRAN/Maria/ATHISA/MAHIS/SURA/Beat/SPAR/Laura/DARTI/Sona/VANNINI/Priya", 
    "A058", 
    "KEO/Micka/KIRAN/MARIA/ATHISA/MAHIS/NICOLE/Laura" 
); 

$arrayListeAgence = array(); 
$usersAdded = array(); 
for ($i = 0; $i < count($pieces); $i = $i + 2) { 
    $key = $pieces[$i]; 
    $usersStr = $pieces[$i + 1]; 
    $users = explode('/', $usersStr); 
    $arrayListeAgence[$key] = array(); 
    for ($j = 0; $j < count($users); $j = $j + 2) { 
     $username = $users[$j]; 
     if (array_search($username, $usersAdded) === false) { 
      $arrayListeAgence[$key][] = $username . " " . $users[$j + 1] . " "; 
      $usersAdded[] = $username; 
     } 
    } 
} 
var_dump($arrayListeAgence); 
+0

在我的情況下,我可以有多個數組,例如A057,A058,....我怎樣才能自動生成它? – TheJoker

+0

爲此,我們需要知道你的$ listUsers和$ pieces數組看起來像 – littleibex

+0

@lbebebeix謝謝如果你有一個想法,我怎麼能找到A058的重要價值,例如KEO MIcka和KIRAN Maria在A057和A058,所以我需要存儲重複值並在A058中刪除,但繼續A057,我該怎麼做? – TheJoker

0

如果$arrayListeAgence是您的多維數組,這應該產生你所尋找的輸出。

// Define the main array 
$arrayListeAgence = []; 

for ($i = 0; $i < sizeof($pieces); $i += 2) { 
    // Define one of the pieces 
    $arrayListeAgence[$pieces[$i]] = []; 

    for ($j = 1; $j < sizeof($listUsers); ++$j) { 
     // Define a single element 
     $arrayListeAgence[$pieces[$i]][] = $listUsers[$j - 1] . ' ' . $listUsers[$j]; 
    } 
} 

這裏是一個工作示例:http://ideone.com/gtYvIx

+0

array(1){[「A36」] => array(7){[0] => array(1){[0] => string(21)「Jean-Charles」} [1] => array 1){[0] => string(19)「MARTIN」} [2] => array(1){[0] => string(15)「MN Dee」} [3] => array(1){ [0] => string(16)「no NOUAU」} [4] => array(1){[0] => string(16)「mandi」} [5] => array(1){[ =>字符串(20)「SANA」} [6] =>數組(1){[0] =>字符串(16)「KARSA」}}}對不起,這不是我期待的:( – TheJoker

+0

@TheJoker我有修改代碼並刪除多餘的(不必要的)括號 - 它現在應該產生所需的結果 – skreborn

+0

它接近預期的輸出,但是我怎樣才能自動增加$因爲它不會去下一個A057,A056等等...... 。爲什麼? – TheJoker