从数组php中删除第一级索引
我有一个数组,我想从中删除第一级索引并保留其值。从数组php中删除第一级索引,php,arrays,Php,Arrays,我有一个数组,我想从中删除第一级索引并保留其值。 可以不使用循环吗 输入数组: Array ( [0] => Array( [2135] => Array( [id] => 2135 [first_name] => John [last_name] => Doe
可以不使用循环吗 输入数组:
Array (
[0] => Array(
[2135] => Array(
[id] => 2135
[first_name] => John
[last_name] => Doe
)
),
[1] => Array (
[3245] => Array(
[id] => 3245
[first_name] => Sally
[last_name] => Smith
)
)
)
Array (
[2135] => Array(
[id] => 2135
[first_name] => John
[last_name] => Doe
),
[3245] => Array(
[id] => 3245
[first_name] => Sally
[last_name] => Smith
)
)
$file_array = array();
foreach($array_name as $row =>$value){
foreach ($value as $row1 =>$value1){
if(in_array($value1, $file_array)){
}
else{
$file_array[] =$value1;
}
}
}
预期输出:
Array (
[0] => Array(
[2135] => Array(
[id] => 2135
[first_name] => John
[last_name] => Doe
)
),
[1] => Array (
[3245] => Array(
[id] => 3245
[first_name] => Sally
[last_name] => Smith
)
)
)
Array (
[2135] => Array(
[id] => 2135
[first_name] => John
[last_name] => Doe
),
[3245] => Array(
[id] => 3245
[first_name] => Sally
[last_name] => Smith
)
)
$file_array = array();
foreach($array_name as $row =>$value){
foreach ($value as $row1 =>$value1){
if(in_array($value1, $file_array)){
}
else{
$file_array[] =$value1;
}
}
}
试试这个
$a = array (
array(
'2135' => array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe'
)
),
array (
'3245' => array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
)
)
);
$reduce = function ($new = array(), $x) {
$new[array_keys($x)[0]]=array_values($x)[0];
return $new;
};
$output = array_reduce($a, $reduce);
// var_dump($output);
简短(评论)回答:
没有回路将很困难,但使用回路的可能解决方案是:
没有循环就无法完成实际上可以,但开发人员不清楚。您可以使用
迭代器
。你会发现更多的细节,这就是我不回答的原因。它是重复的。@AlanMachado迭代器到数组
在内部使用循环,就像我说过的:开发人员不清楚。它不会为、而为
或为每个声明任何。但是,任何需要对多个元素进行数组操作的函数都必须对其进行迭代,所以…为什么需要“修复”数组?你不能从一开始就以正确的方式构建阵列吗?请不要要求OP在没有解释其工作原理的情况下“尝试”这些东西。您的答案可以阅读给其他搜索帮助和阅读此问题的用户,他们可能无法理解您的解决方案为什么适用。我认为它的工作原理相当明显。它使用array\u reduce
,并执行OP想要的操作,而不使用循环(除非您计算array\u reduce
中隐含的循环)。我认为它也比array\u filter
答案更可取,因为它不需要新的全局变量。你为什么这么不高兴?我没有告诉你的答案是错误的,也没有说你应该代表我撤回它,我只是(礼貌地)建议你对你的代码做一些简短的解释。这只是社区实践。我认为我们有可能会积累误解。我没有生气,我也没有把你理解为说我错了,或者说我应该收回它。我看到你提供了另一个同样有效的答案,我现在就投赞成票:)。不过,我不打算添加解释,因为我真的想不出任何可以添加的内容。任何人都可以用谷歌搜索array\u reduce
,这就是所有需要的解释。好吧,这是很有道理的。对不起,如果我误解了你的观点