【发布时间】:2016-11-25 12:55:40
【问题描述】:
我想知道 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];
}
而且我总是会得到每个项目的正确数据?
【问题讨论】:
-
不太确定你想用上面的代码完成什么,如果你能解释你想做什么可能会有所帮助。简而言之,答案是否定的,因为您使用的是
array_unique,它正在剥离重复值,这意味着您的两个数组可能是两个不同的长度。 -
为什么不直接通过查询得到它?
-
array_unique()是一个问题,因为之后数组的长度可能不同。而且似乎没有任何理由去做你正在做的事情。你能解释一下吗? -
是的,我确实没有意识到在我包含的代码中我还编写了 array_unique 函数,这显然可以改变游戏规则。不,我不能在同一个循环中使用两个键,因为程序的流程。
标签: php sorting associative-array