我有一个数组:
阵列(4 = > '苹果',7 = >“橙色”,13 = >“李子”)
我想要得到这个数组的第一个元素。预期结果:串苹果
一个要求:它不能通过引用传递来完成,所以array_shift不是一个好的解决方案。
我该怎么做呢?
我有一个数组:
阵列(4 = > '苹果',7 = >“橙色”,13 = >“李子”)
我想要得到这个数组的第一个元素。预期结果:串苹果
一个要求:它不能通过引用传递来完成,所以array_shift不是一个好的解决方案。
我该怎么做呢?
当前回答
使用array_keys()作为数字索引数组访问关联数组的键,然后可以再次将其用作数组的键。
当解为arr[0]时:
(注意,由于具有键的数组是基于0的索引,因此第1 元素是索引0)
你可以使用一个变量,然后减去1,得到你的逻辑,1 => 'apple'。
$i = 1;
$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
echo $arr[array_keys($arr)[$i-1]];
输出:
apple
为了简单起见,只需使用:
$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
echo $arr[array_keys($arr)[0]];
输出:
apple
通过第一种方法,不仅可以处理第一个元素,还可以像对待索引数组一样对待关联数组。
其他回答
对Sarfraz发布的内容做了一个小改动:
$array = array(1, 2, 3, 4, 5);
$output = array_slice($array, 0, 1);
print_r ($output);
你可以用一个语言结构"list"得到第n个元素:
// First item
list($firstItem) = $yourArray;
// First item from an array that is returned from a function
list($firstItem) = functionThatReturnsArray();
// Second item
list( , $secondItem) = $yourArray;
使用array_keys函数,你可以对键做同样的事情:
list($firstKey) = array_keys($yourArray);
list(, $secondKey) = array_keys($yourArray);
<?php
$arr = array(3 => "Apple", 5 => "Ball", 11 => "Cat");
echo array_values($arr)[0]; // Outputs: Apple
?>
其他的例子:
<?php
$arr = array(3 => "Apple", 5 => "Ball", 11 => "Cat");
echo current($arr); // Outputs: Apple
echo reset($arr); // Outputs: Apple
echo next($arr); // Outputs: Ball
echo current($arr); // Outputs: Ball
echo reset($arr); // Outputs: Apple
?>
$myArray = array (4 => 'apple', 7 => 'orange', 13 => 'plum');
$arrayKeys = array_keys($myArray);
// The first element of your array is:
echo $myArray[$arrayKeys[0]];
一行闭行,复制,重置:
<?php
$fruits = array(4 => 'apple', 7 => 'orange', 13 => 'plum');
echo (function() use ($fruits) { return reset($fruits); })();
输出:
apple
或者更短的短箭头函数:
echo (fn() => reset($fruits))();
这使用如上所述的按值变量绑定。两者都不会改变原来的指针。