Php 嵌套数组
我有3个不同的数组Php 嵌套数组,php,arrays,nested,Php,Arrays,Nested,我有3个不同的数组 $partylist = ['party1','party2','party3']; $position = ['position1','position2']; $members= ['name1','name2','name3','name4','name5','name6']; 我想在每个$partylist数组值中嵌套$position和$member,但在php语法中,$position作为关联名称,$members作为这样的值 array { p
$partylist = ['party1','party2','party3'];
$position = ['position1','position2'];
$members= ['name1','name2','name3','name4','name5','name6'];
我想在每个$partylist数组值中嵌套$position和$member,但在php语法中,$position作为关联名称,$members作为这样的值
array {
party1 {
array{
position1 => name1
position2 => name2
}
}
party2 {
array{
position1 => name3
position2 => name4
}
}
party3 {
array{
position1 => name5
position2 => name6
}
}
}
基于@Alive to Die的答案,如果嵌套第二个
foreach()
,您可以动态增加/减少您的团队、职位或成员数量
//use count($position) to divide the members
$partymembers = array_chunk($members,count($position));
// create new array
$partyArray=[];
foreach($partylist as $key1 => $party){
// create the party key
$partyArray[$party] = [];
foreach($position as $key2 => $p){
// create the party position key and member
$partyArray[$party][$p] = isset($partymembers[$key1][$key2]) ? $partymembers[$key1][$key2] : '';
}
}
请参见
是否有任何尝试?你现在有什么代码?
<?php
$partylist = ['party1','party2','party3'];
$position = ['position1','position2'];
$members = ['name1','name2','name3','name4','name5','name6'];
$out = [];
foreach ($members as $member) {
if (!empty($out) && !next($position)) {
reset($position);
if(!next($partylist)) {
die('Not enough parties.'.PHP_EOL);
}
}
$out[current($partylist)][current($position)] = $member;
}
print_r($out);