我有一个数组:
阵列(4 = > '苹果',7 = >“橙色”,13 = >“李子”)
我想要得到这个数组的第一个元素。预期结果:串苹果
一个要求:它不能通过引用传递来完成,所以array_shift不是一个好的解决方案。
我该怎么做呢?
我有一个数组:
阵列(4 = > '苹果',7 = >“橙色”,13 = >“李子”)
我想要得到这个数组的第一个元素。预期结果:串苹果
一个要求:它不能通过引用传递来完成,所以array_shift不是一个好的解决方案。
我该怎么做呢?
当前回答
对Sarfraz发布的内容做了一个小改动:
$array = array(1, 2, 3, 4, 5);
$output = array_slice($array, 0, 1);
print_r ($output);
其他回答
我输入echo current($array)
$myArray = array (4 => 'apple', 7 => 'orange', 13 => 'plum');
$arrayKeys = array_keys($myArray);
// The first element of your array is:
echo $myArray[$arrayKeys[0]];
我想象作者只是在寻找一种方法来获得一个数组的第一个元素后,从一些函数(mysql_fetch_row,例如),而不生成一个严格的“只有变量应该通过引用传递”。
如果是这样的话,这里描述的几乎所有方法都会得到这个消息…其中一些会使用大量额外的内存来复制一个数组(或其中的一部分)。避免它的一个简单方法是在调用任何这些函数之前内联赋值:
$first_item_of_array = current($tmp_arr = mysql_fetch_row(...));
// or
$first_item_of_array = reset($tmp_arr = func_get_my_huge_array());
这样就不会在屏幕上看到STRICT消息,也不会在日志中看到STRICT消息,也不会创建任何额外的数组。它既适用于索引数组,也适用于关联数组。
你可以通过下面的代码获取第一个元素:
$array_key_set = array_keys($array);
$first_element = $array[$array_key_set[0]];
或者使用:
$i=0;
foreach($array as $arr)
{
if($i==0)
{
$first_element=$arr;
break;
}
$i++;
}
echo $first_element;
$first_value = reset($array); // First element's value
$first_key = key($array); // First element's key