PHP array_column 多个键相同的顺序?
PHP array_column multiple keys same order?
我想知道 array_column 是否保持数组元素的顺序,所以当我在同一个数组中调用该函数两次时,我可以相信结果数组会匹配。我需要以这种方式工作,因为在代码中我必须只对特定数据(其中一个键,在示例中为 id)进行许多操作,毕竟,使用它们(在示例中为 id 和 qty)来插入数据库。
示例:
QUERY: SELECT id, qty FROM items ...
CONVERTED INTO ASSOCIATIVE ARRAY:
$array = [
['id' => 1, 'qty' = 2],
['id' => 2, 'qty' = 4]
];
$itemsIds = array_column($array, 'id');
$itemsQty = array_column($array, 'qty');
我可以吗?:
for($i = 0; $i < count($array); $i++) {
echo $itemsIds[$i] . $itemsQty[$i];
}
而且我总能得到每个项目的正确数据?
如果您通过 SQL 查询获得所需的所有值并使用类似以下内容打印它会怎样:
$arrayLength = count($array); // Better optimization than do it in every loop
for($i = 0; $i < $arrayLength; $i++) {
echo $array[$i]['id'] . $array[$i]['qty'];
}
这将确保所有匹配,并且它们具有相同的行数。
由于数据库结果是基于行的(通常),每一列都会有一些值(即使它是NULL
)。所以除非你以某种方式弄乱了结果,否则你应该是安全的。我在我的一些代码中做了几乎相同的事情。
从您的代码来看,您似乎希望在使用 array_column
两次后正确保留与其值相对应的键。
但是对于您来说,您可以像这样使用 array_column
一次获得此信息:
$items = array_column($array, 'qty', 'id')
现在你得到一个关联数组,其中键是每行 id,值是每行数量。
第三个参数array_column
的含义是
The column to use as the index/keys for the returned array. This value may be the integer key of the column, or it may be the string key name.
您可以从文档中找到更多解释和示例:http://php.net/manual/en/function.array-column.php
我想知道 array_column 是否保持数组元素的顺序,所以当我在同一个数组中调用该函数两次时,我可以相信结果数组会匹配。我需要以这种方式工作,因为在代码中我必须只对特定数据(其中一个键,在示例中为 id)进行许多操作,毕竟,使用它们(在示例中为 id 和 qty)来插入数据库。
示例:
QUERY: SELECT id, qty FROM items ...
CONVERTED INTO ASSOCIATIVE ARRAY:
$array = [
['id' => 1, 'qty' = 2],
['id' => 2, 'qty' = 4]
];
$itemsIds = array_column($array, 'id');
$itemsQty = array_column($array, 'qty');
我可以吗?:
for($i = 0; $i < count($array); $i++) {
echo $itemsIds[$i] . $itemsQty[$i];
}
而且我总能得到每个项目的正确数据?
如果您通过 SQL 查询获得所需的所有值并使用类似以下内容打印它会怎样:
$arrayLength = count($array); // Better optimization than do it in every loop
for($i = 0; $i < $arrayLength; $i++) {
echo $array[$i]['id'] . $array[$i]['qty'];
}
这将确保所有匹配,并且它们具有相同的行数。
由于数据库结果是基于行的(通常),每一列都会有一些值(即使它是NULL
)。所以除非你以某种方式弄乱了结果,否则你应该是安全的。我在我的一些代码中做了几乎相同的事情。
从您的代码来看,您似乎希望在使用 array_column
两次后正确保留与其值相对应的键。
但是对于您来说,您可以像这样使用 array_column
一次获得此信息:
$items = array_column($array, 'qty', 'id')
现在你得到一个关联数组,其中键是每行 id,值是每行数量。
第三个参数array_column
的含义是
The column to use as the index/keys for the returned array. This value may be the integer key of the column, or it may be the string key name.
您可以从文档中找到更多解释和示例:http://php.net/manual/en/function.array-column.php