我对PHP很陌生,而且我很难理解我应该如何做出这样的事情:
Array
(
[name] => Array
(
[0] => Bob
[1] => Tom
[2] => Ryan
[3] => Lisa
[4] => Peter
)
[age] => Array
(
[0] => 23
[1] => 33
[2] => 43
[3] => 33
[4] => 29
)
)
进入这种阵列:
Array
(
[person] => Array
(
[name] => Bob
[age] => 23
)
[person] => Array
(
[name] => Tom
[age] => 33
)
)
所以我不能拥有一个人的钥匙,而不是姓名和年龄钥匙。并将名称和年龄相同的索引放入此人员密钥中。我将如何实现这一目标?
感谢。
答案 0 :(得分:1)
数组中不可能有多个person
键,因为键必须是唯一的。
试试:
$input = [
'name' => ['Bob', 'Tom', 'Ryan', 'Lisa', 'Peter'],
'age' => [23, 33, 43, 33, 29],
];
$output = array_map(function($name, $age) {
return ['name' => $name, 'age' => $age];
}, $input['name'], $input['age']);
var_dump($output);
输出:
array (size=5)
0 =>
array (size=2)
'name' => string 'Bob' (length=3)
'age' => int 23
1 =>
array (size=2)
'name' => string 'Tom' (length=3)
'age' => int 33
2 =>
array (size=2)
'name' => string 'Ryan' (length=4)
'age' => int 43
3 =>
array (size=2)
'name' => string 'Lisa' (length=4)
'age' => int 33
4 =>
array (size=2)
'name' => string 'Peter' (length=5)
'age' => int 29
答案 1 :(得分:1)
最简单的方法是:
// Create a main array for the 'people' to be stored in
$people = array();
// Create a person
$bob = array('name' => 'Bob', 'age' => 23);
// Add that person into the 'people' array
$people[] = $bob;
// Repeat as many times a necessary
$tom = array('name' => 'Tom', 'age' => 33);
$people[] = $tom;
$ryan = array('name' => 'Ryan', 'age' => 43);
$people[] = $ryan;
要查看输出:
var_dump($people);
应该产生类似的东西:
array(3) {
[0]=>
array(2) {
["name"]=>
string(3) "Bob"
["age"]=>
int(23)
}
[1]=>
array(2) {
["name"]=>
string(3) "Tom"
["age"]=>
int(33)
}
[2]=>
array(2) {
["name"]=>
string(4) "Ryan"
["age"]=>
int(43)
}
}
这是因为您可以自动将项目附加到数组的末尾,而无需指定要插入它们的键。这就是我们用线条做的事情:
$people[] = $bob;
基本上说,将变量'$ bob'添加到数组中的下一个可用插槽。由于数组最初是空的,恰好是'0'键,依此类推。
答案 2 :(得分:0)
根据定义,密钥必须是唯一的。您可以做的是,创建一个名为$persons
的数组,其中包含以下数据:
Array (
[1] => Array (
[name] => Bob
[age] => 23
)
[2] => Array (
[name] => Tom
[age] => 33
)
...
)
您可以按照以下方式执行此操作:
$persons = Array();
for($i = 0; $i < sizeof($arr["name"]); $i++) {
$persons[$i]["name"] = $arr["name"][$i];
$persons[$i]["age"] = $arr["age"][$i];
}
示例输出:
Array
(
[0] => Array
(
[name] => Bob
[age] => 23
)
[1] => Array
(
[name] => Tom
[age] => 33
)
[2] => Array
(
[name] => Ryan
[age] => 43
)
...
)
答案 3 :(得分:0)
像
$array=new Array();
$array[]=array('name'=>'Jhon Doe','age'=>23]
依旧为您想要存储的每个人。