[英]PHP - Two dimensional array
我对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
)
)
所以我不能拥有一个人的钥匙,而不是姓名和年龄钥匙。 并将名称和年龄相同的索引放入此人员密钥中。 我将如何实现这一目标?
谢谢。
因为键必须是唯一的,所以不可能在阵列中有许多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
最简单的方法是:
// 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'键,依此类推。
根据定义,密钥必须是唯一的。 您可以做的是,使用以下数据创建一个名为$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
)
...
)
喜欢
$array=new Array();
$array[]=array('name'=>'Jhon Doe','age'=>23]
对于你想要存储的每个人来说等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.