Php 从父数组中删除第一个数组集
我有一个数组,其中包含许多数组集。第一个(外部)数组有一个可更改的键。我的目标是输入父数组(同样,键未知)并删除第一个数组集。数组集的键从零开始递增-理想情况下,这些键将被重新索引Php 从父数组中删除第一个数组集,php,arrays,Php,Arrays,我有一个数组,其中包含许多数组集。第一个(外部)数组有一个可更改的键。我的目标是输入父数组(同样,键未知)并删除第一个数组集。数组集的键从零开始递增-理想情况下,这些键将被重新索引 Array ( [changeable] => Array ( [0] => Array
Array
(
[changeable] => Array
(
[0] => Array
(
[name] => Beta
[score] => 1
)
[1] => Array
(
[name] => Gamma
[score] => 4
)
[2] => Array
(
[name] => Delta
[score] => 3
)
[3] => Array
(
[name] => Epsilon
[score] => 2
)
[4] => Array
(
[name] => Zeta
[score] => 2
)
)
)
我考虑过在数组本身上使用一个计数递增的foreach循环
问题似乎是在外部数组的键未知时访问数组集。例如,下面的代码无法访问数组集(密钥名为,只是未知或可更改)
这里是预期的数组-注意:“alpha”数组被删除,键被重新索引
Array
(
[changeable] => Array
(
[0] => Array
(
[name] => Beta
[score] => 1
)
[1] => Array
(
[name] => Gamma
[score] => 4
)
[2] => Array
(
[name] => Delta
[score] => 3
)
[3] => Array
(
[name] => Epsilon
[score] => 2
)
[4] => Array
(
[name] => Zeta
[score] => 2
)
)
)
如果我能正确理解你的问题,你可以使用
$array = [];
$array['random_key1'] = [
[
'name' => 'Alpha',
'score' => 1
],
[
'name' => 'Beta',
'score' => 1
],
[
'name' => 'Gamma',
'score' => 4
],
[
'name' => 'Delta',
'score' => 3
],
[
'name' => 'Epsilon',
'score' => 2
],
[
'name' => 'Zeta',
'score' => 2
]
];
$array['random_key2'] = [
[
'name' => 'Alpha',
'score' => 1
],
[
'name' => 'Beta',
'score' => 1
],
[
'name' => 'Gamma',
'score' => 4
],
[
'name' => 'Delta',
'score' => 3
],
[
'name' => 'Epsilon',
'score' => 2
],
[
'name' => 'Zeta',
'score' => 2
]
];
foreach($array as &$value) {
array_shift($value);
}
echo '<pre>';
print_r($array);
$array=[];
$array['random_key1']=[
[
'name'=>'Alpha',
“分数”=>1
],
[
'名称'=>'测试版',
“分数”=>1
],
[
'名称'=>'伽马',
“分数”=>4
],
[
'name'=>'Delta',
“分数”=>3
],
[
'name'=>'Epsilon',
“分数”=>2
],
[
“name”=>“Zeta”,
“分数”=>2
]
];
$array['random_key2']=[
[
'name'=>'Alpha',
“分数”=>1
],
[
'名称'=>'测试版',
“分数”=>1
],
[
'名称'=>'伽马',
“分数”=>4
],
[
'name'=>'Delta',
“分数”=>3
],
[
'name'=>'Epsilon',
“分数”=>2
],
[
“name”=>“Zeta”,
“分数”=>2
]
];
foreach($array as&$value){
数组移位($value);
}
回声';
打印(数组);
听起来你可能在寻找数组\u shift
。我甚至不知道你想做什么。您能给出输入和所需结果的示例吗?如果您不知道这些键,可以使用array\u keys()
获取它们。您还可以使用诸如reset()
和key()
之类的函数。更新为before和expectedHey,您只需使用array\u shift($array[change]),这里$array是原始数组变量名
$array = [];
$array['random_key1'] = [
[
'name' => 'Alpha',
'score' => 1
],
[
'name' => 'Beta',
'score' => 1
],
[
'name' => 'Gamma',
'score' => 4
],
[
'name' => 'Delta',
'score' => 3
],
[
'name' => 'Epsilon',
'score' => 2
],
[
'name' => 'Zeta',
'score' => 2
]
];
$array['random_key2'] = [
[
'name' => 'Alpha',
'score' => 1
],
[
'name' => 'Beta',
'score' => 1
],
[
'name' => 'Gamma',
'score' => 4
],
[
'name' => 'Delta',
'score' => 3
],
[
'name' => 'Epsilon',
'score' => 2
],
[
'name' => 'Zeta',
'score' => 2
]
];
foreach($array as &$value) {
array_shift($value);
}
echo '<pre>';
print_r($array);