假设我有以下数组:
$array(
'32' => array('name' => 'paul', 'age' => 43),
'17' => array('name' => 'eric', 'age' => 19),
'99' => array('name' => 'dave', 'age' => 65)
)
我只对第一个$array
项感兴趣:
$array2 = array('key'=> 32, 'name' => 'paul', 'age' => 43)
实现这一目标的最有效方法是什么?换句话说,我可以用一个命令抛出$ array的所有其他项吗?
答案 0 :(得分:10)
使用 array_shift()
。
array_shift()
关闭数组的第一个值并返回它, 将数组缩短一个元素并将所有内容向下移动。所有 数字数组键将被修改为从零开始计数 而文字键不会被触及。
$array2 = array_shift($array);
这意味着$array2
现在拥有第一个元素,而$array
拥有其余元素。
答案 1 :(得分:2)
试试这个
$array2 = array_shift($array);
答案 2 :(得分:1)
$newArr = reset($array);
我认为没有问题。
答案 3 :(得分:0)
真的有两种选择。您可以只选择数组中的第一项
$array2 = $array[0];
或者您可以将array_slice用作
$array2 = array_slice($array, 0, 1);
答案 4 :(得分:0)
reset
一个数组也会返回第一个元素(end()
返回最后一个元素):
$first = reset( $array );
http://www.php.net/manual/en/function.reset.php
但要生成您想要的确切结果,您可以编写类似这样的内容
foreach( $array as $k => $first ){ // get first sub-array and its key
$first['key'] = $k; // add the key
break; // we don't care about the other elements, goodbye
}
Futuregeek的方法已修复:
$first =
// returns first element, and sets it as the current element for key()
reset( $array )
// instead of array_merge, (sometimes) you can use the + operator
+
// key() will return the appropriate key after reset()
array('key' => key( $array ));
答案 5 :(得分:0)
Array_shift可能是最好的方法。但只是为了好玩,这是另一种方式。
$first_element = end(array_reverse($array));
答案 6 :(得分:0)
$k = array_merge(array('key' => key($array)), array_shift($array));
以指定格式返回。
key为您提供第一个密钥,array_shift为您提供第一个密钥,并使用array_merge进行合并
答案 7 :(得分:0)
Try It :
$arr = array(
'32' => array('name' => 'paul', 'age' => 43),
'17' => array('name' => 'eric', 'age' => 19),
'99' => array('name' => 'dave', 'age' => 65)
);
foreach($arr as $key => $value)
{
$result[$key] = $value;
break;
}
print_r($result);
##-------Secount Way If you don't want Key 32--------------------------
$arr = array(
'32' => array('name' => 'paul', 'age' => 43),
'17' => array('name' => 'eric', 'age' => 19),
'99' => array('name' => 'dave', 'age' => 65)
);
$arr = array_reverse($arr);
print_r(end($arr));
#------ Third Way If you don't want Key 32 -------------
echo "<br>=======<br>";
$arr = array(
'32' => array('name' => 'paul', 'age' => 43),
'17' => array('name' => 'eric', 'age' => 19),
'99' => array('name' => 'dave', 'age' => 65)
);
$array2 = array_shift($arr);
print_r($array2);