多维数组在没有附加值时会丢失其索引
Multidimensional array looses its index when having no value attached
正在尝试找到最好的数组结构来遍历多维数组。
要求:
1)"Title"应该可以通过索引找到
2) "Balance" 值应该可以迭代。
观察:
假设以上要求,唯一满足要求的数组是array_3。 array_3 假设 "balance" 值捆绑在一个数组中。
问题:
1) 为什么标题在 array_2 和 array_3 中没有被赋值的情况下丢失它的索引?
2) 为什么(在 array_1 和 array_2 中)值 10 作为值附加到 "balance" 但值 20 有自己的索引?
3) 假设上述要求,是否有更好的方法来构建数组?
我的代码:
<?php
$array_1 = [
'title',
'balance' =>
10,
20,
];
$array_2 = [
'title' => '',
'balance' =>
10,
20,
];
$array_3 = [
'title' => '',
'balance' => [
10,
20,
]
];
// Prints
print_r($array_1);
print_r($array_2);
print_r($array_3);
// Access values through echo.
print_r($array_1['balance']) . "\n";
echo $array_2['balance'] . "\n";
echo $array_3['balance'][0] . "\n";
echo $array_3['balance'][1] . "\n";
// Loops
for ($i=0; $i < count($array_3) ; $i++) {
echo "looping over array:" . $array_3['balance'][$i] . "\n";
}
foreach ($array_3['balance'] as $key => $value) {
echo "key:" . $key . " " . "value:" . $value . "\n";
}
1 - 标题没有失去它的索引。在第一个数组中,title
不是索引,而是一个值。看看 print_r()
结果...
print_r($array_1);
给...
Array
(
[0] => title
[balance] => 10
[1] => 20
)
和
print_r($array_2);
给...
Array
(
[title] =>
[balance] => 10
[0] => 20
)
使用
echo "Title=".$array_2['title'].".".PHP_EOL;
只给出一个空白值
Title=.
2 - 在数组 3 中,您为余额创建了一个数组
'balance' => [
10,
20,
]
其他人只有一个值
'balance' => 10,
20,
所以 20 被视为与 balance
.
处于同一级别
3 - 第三个数组最适合它应该如何完成。
正在尝试找到最好的数组结构来遍历多维数组。
要求:
1)"Title"应该可以通过索引找到
2) "Balance" 值应该可以迭代。
观察:
假设以上要求,唯一满足要求的数组是array_3。 array_3 假设 "balance" 值捆绑在一个数组中。
问题:
1) 为什么标题在 array_2 和 array_3 中没有被赋值的情况下丢失它的索引?
2) 为什么(在 array_1 和 array_2 中)值 10 作为值附加到 "balance" 但值 20 有自己的索引?
3) 假设上述要求,是否有更好的方法来构建数组?
我的代码:
<?php
$array_1 = [
'title',
'balance' =>
10,
20,
];
$array_2 = [
'title' => '',
'balance' =>
10,
20,
];
$array_3 = [
'title' => '',
'balance' => [
10,
20,
]
];
// Prints
print_r($array_1);
print_r($array_2);
print_r($array_3);
// Access values through echo.
print_r($array_1['balance']) . "\n";
echo $array_2['balance'] . "\n";
echo $array_3['balance'][0] . "\n";
echo $array_3['balance'][1] . "\n";
// Loops
for ($i=0; $i < count($array_3) ; $i++) {
echo "looping over array:" . $array_3['balance'][$i] . "\n";
}
foreach ($array_3['balance'] as $key => $value) {
echo "key:" . $key . " " . "value:" . $value . "\n";
}
1 - 标题没有失去它的索引。在第一个数组中,title
不是索引,而是一个值。看看 print_r()
结果...
print_r($array_1);
给...
Array
(
[0] => title
[balance] => 10
[1] => 20
)
和
print_r($array_2);
给...
Array
(
[title] =>
[balance] => 10
[0] => 20
)
使用
echo "Title=".$array_2['title'].".".PHP_EOL;
只给出一个空白值
Title=.
2 - 在数组 3 中,您为余额创建了一个数组
'balance' => [
10,
20,
]
其他人只有一个值
'balance' => 10,
20,
所以 20 被视为与 balance
.
3 - 第三个数组最适合它应该如何完成。