Php 处理多维数组

Php 处理多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我需要在数组上推送不同的值,例如,我想要一个如下所示的数组: array(2) { ["A056"]=> array(1) { [0]=> string(21) "User1name firstname " } [1]=> string(21) "User2name firstname " }

我需要在数组上推送不同的值,例如,我想要一个如下所示的数组:

     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(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数组:(需要迭代并将值放入主数组ArrayListAgency)

给你:

<?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);

如果
$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];
    }
}
//定义主数组
$arrayListeAgence=[];
对于($i=0;$i

下面是一个工作示例:

请向我们展示预期的输出。(注意:不能有多个具有相同值的键!)预期的输出是:'array(2){[“A056”]=>array(1){[0]=>string(21)“User1name firstname”}[1]=>string(21)“User2name firstname”}[2]=>string(21)“User3name firstname”},它不是递增的,所有的值都存储在[0]上。为什么?@TheJoker将其发布在问题中,而不是评论中;)那么$listUsers数组呢?我们应该从哪里获取用户名和名字?@littleibex Ya我有一个问题,我如何猜测A058中有多少用户,如何在我的片段数组中自动迭代这些用户??在我的情况下,我可以有多个数组,例如A057、A058,如何自动生成它?为此,我们需要知道您的$listUsers和$pieces数组的外观like@littlebeix感谢它的工作,如果你知道如何在A058上找到重复值,例如KEO MIcka和KIRAN Maria在A057和A058中,所以我需要存储重复值并在A058中删除,但继续A057,我怎么能做到这一点?@TheJoker我已经更新了我的答案以避免重复。我有一个小问题,如果我有3个代理(A057、A058和A059),并且用户在A058和A059上,我怎么能从A059上删除用户而只保留A058?数组(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)“ne noau”}[4]=>array(1){[0]=>string(16)“mandi”}[5]=>array(1){[0]=>string(20)“SANA”}[6]=>array(1){[0]=>string(16)“KARSA”}},对不起,这不是我所期望的:(@TheJoker我已经修改了代码并删除了多余的代码)括号-它现在应该产生所需的结果。它接近预期的输出,但是我如何自动增加$pieces,因为它不会进入下一个A057、A056等…??为什么?它会增加。这正是外部循环的用途。你的
$pieces
数组当然可能与我使用的数组不同。请将它添加到你的ori中ginal问题,以便我们可以查看它的结构。检查我对我的工件数组的编辑,您有A057+userlist+A058+userlist(我的数组结构)
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) )
<?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);
// 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];
    }
}