我试图从我的多维数组中删除前3个级别,是否有一种“更清晰”的方式来执行以下代码?
$array = array_shift(array_shift(array_shift($this->fullArray())));
这是数组
array(1) {
["GetAllJobByLanguageResult"]=> array(1) {
["Results"]=> array(1) {
["AvJobSearch"]=> array(2) {
[0]=> array(21) {
["Id"]=> int(103689)
["Title"]=> string(13) "Test Vacature"
["PublishDate"]=> string(23) "2018-06-08T14:11:05.237"
答案 0 :(得分:1)
您可以循环删除要删除的级别数。
我使用array_keys查找键并用$ arr覆盖$ arr更深一层 然后重复执行for循环中指定的次数。
$arr = [["second" => ["something" => ["else" => [1,2,3]]]]];
For($i=0;$i<3;$i++){
$keys = array_keys($arr);
$arr = $arr[$keys[0]];
}
Var_dump($arr);
如果您知道确切的路径,那么您可以跳过循环并写下:
$arr = $arr[0]["second"]["something"];
但如果您不确定键是什么,那么循环很有用。
答案 1 :(得分:0)
您使用静态方法删除数组元素,array_shift
不是用于删除元素
试试这个
<?php
$a = array("a"=>"red","b"=>"green","c"=>"blue");
$i=1;
foreach($a as $key=>$value){
if($i < 3){
unset($a[$key]);
}
$i++;
}
print_r($a);