多维数组在没有附加值时会丢失其索引

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 - 第三个数组最适合它应该如何完成。