【发布时间】:2017-01-17 19:55:33
【问题描述】:
以下数组的元素1代表x值最大的元素,元素2代表x元素最小的元素。
不用PHP代码循环遍历每个数组,如何确定x最大和最小元素的索引?
$array = [
['x'=>5,'y'=>3],
['x'=>9,'y'=>3],
['x'=>3,'y'=>3],
['x'=>7,'y'=>3]
];
【问题讨论】:
-
你必须循环每个元素,如果有比你发现的更大的值,你怎么知道?!
-
仅仅因为您在代码中没有看到它并不意味着
array_column()不会循环遍历整个数组,因为它确实如此。你可以使用一个简单的 foreach 循环,然后你只会在数组上循环一次,而不是像array_column()那样循环两次。 -
更准确地说,如果你使用
array_column(),你不仅要遍历数组一次来获取列,还需要使用min()和max(),这也需要循环整个数组。因此,您总共遍历数组 3 次,只是因为您不想在代码中看到“循环”。您可以使用一个简单的 foreach 循环并在一个循环中完成所有操作! -
通过使用限制:
Without looping over each- 你的意思是:1) 不要使用foreach循环语句 2) 使用一些不比较相邻条目值的指令? 1) 满足使用 'array_*' 函数。 2) 不可能使用任何使用标准 CPU 和内存的计算机。说清楚 - 所有传统计算机总是循环遍历数据。 -
@RyanVincent 我应该说“不使用 PHP 代码循环”。