确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
确定可能关联数组中的第一个键的最佳方法是什么?我的第一个想法是先遍历数组,然后立即打破它,如下所示:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率很低。有人有更好的解决方案吗?
当前回答
你可以玩你的阵列
$daysArray = array('Monday', 'Tuesday', 'Sunday');
$day = current($transport); // $day = 'Monday';
$day = next($transport); // $day = 'Tuesday';
$day = current($transport); // $day = 'Tuesday';
$day = prev($transport); // $day = 'Monday';
$day = end($transport); // $day = 'Sunday';
$day = current($transport); // $day = 'Sunday';
要获取数组的第一个元素,可以使用current,最后一个元素可以使用end
Edit
为了不获得更多的反对票,您可以使用array_keys将key转换为value,并如上所示使用。
其他回答
你可以玩你的阵列
$daysArray = array('Monday', 'Tuesday', 'Sunday');
$day = current($transport); // $day = 'Monday';
$day = next($transport); // $day = 'Tuesday';
$day = current($transport); // $day = 'Tuesday';
$day = prev($transport); // $day = 'Monday';
$day = end($transport); // $day = 'Sunday';
$day = current($transport); // $day = 'Sunday';
要获取数组的第一个元素,可以使用current,最后一个元素可以使用end
Edit
为了不获得更多的反对票,您可以使用array_keys将key转换为value,并如上所示使用。
对我来说最好的方法是
array_shift(array_keys($array))
arraykeys从初始数组中获取关键字数组,然后arrayshift从其第一个元素值中剪切。为此,您需要PHP 5.4+。
2019年更新
从PHP 7.3开始,有一个名为array_key_first()的新内置函数,它将在不重置内部指针的情况下从给定数组中检索第一个键。查看文档以了解更多信息。
您可以使用重置和按键:
reset($array);
$first_key = key($array);
它基本上与初始代码相同,但开销稍小,而且发生的情况更明显。
只需记住调用reset,否则可能会得到数组中的任何键。您也可以使用结束而不是重置来获取最后一个密钥。
如果您希望键获得第一个值,reset实际上会返回它:
$first_value = reset($array);
但有一种特殊情况需要注意(因此首先检查数组的长度):
$arr1 = array(false);
$arr2 = array();
var_dump(reset($arr1) === reset($arr2)); // bool(true)
今天,我必须搜索POST请求返回的数组的第一个密钥。(并注意表单id等的编号)
我发现了这个:返回PHP中关联数组的第一个键
http://php.net/key
我已经做到了,而且很有效。
$data = $request->request->all();
dump($data);
while ($test = current($data)) {
dump($test);
echo key($data).'<br />';die();
break;
}
也许会比其他人节省15分钟。CYA。
$arr = array('key1'=>'value1','key2'=>'value2','key3'=>'key3');
list($first_key) = each($arr);
print $first_key;
// key1