Php 扔掉整个阵法,但扔掉第一项
假设我有以下数组:Php 扔掉整个阵法,但扔掉第一项,php,Php,假设我有以下数组: $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' =&
$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的所有其他项吗?使用
array\u shift()
将数组的第一个值移位并返回,
将阵列缩短一个元素,并向下移动所有元素。全部的
数字数组键将被修改为从零开始计数
而文字键不会被触摸
这意味着$array2
现在保存第一个元素,而$array
保存其余元素
$newArr = reset($array);
我想这没问题。试试这个
$array2 = array_shift($array);
有两种选择,真的。或者您可以只选择数组中的第一项
$array2 = $array[0];
或者您可以使用array_slice作为
$array2 = array_slice($array, 0, 1);
reset
t数组还返回第一个元素(end()
返回最后一个元素):
但要生成您想要的确切结果,您可以编写如下内容
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 ));
数组移位可能是最好的方法。但仅仅为了好玩,这里还有另一种方式
$first_element = end(array_reverse($array));
以指定格式返回
获取第一个键,获取第一个值,然后使用合并尝试:
$arr=数组(
'32'=>array('name'=>'paul','age'=>43),
'17'=>数组('name'=>'eric','age'=>19),
'99'=>数组('name'=>'dave','age'=>65)
);
foreach($arr作为$key=>$value)
{
$result[$key]=$value;
打破
}
打印(结果);
##-------如果您不需要密钥32,请按顺序计数--------------------------
$arr=数组(
'32'=>array('name'=>'paul','age'=>43),
'17'=>数组('name'=>'eric','age'=>19),
'99'=>数组('name'=>'dave','age'=>65)
);
$arr=阵列_反向($arr);
打印(结束($arr));
#------第三种方法,如果您不需要密钥32-------------
回声“==========
”; $arr=数组( '32'=>array('name'=>'paul','age'=>43), '17'=>数组('name'=>'eric','age'=>19), '99'=>数组('name'=>'dave','age'=>65) ); $array2=阵列移位($arr); 印刷费($array2);
是否要使用
键扩展第一个元素?
缩短+重置数组:$k=reset($array)+数组('key'=>key($array))代码>:)与结束
相反的是重置
,您不必反转数组!请注意,这将生成一个数组,其中包含另一个键为零的数组。只需执行$newArr=reset($array)代码>应该是OP想要的更多(减去键
键)。
$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 ));
$first_element = end(array_reverse($array));
$k = array_merge(array('key' => key($array)), array_shift($array));
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);