动态获取PHP中最后一个公共数组值
我有下面给出的原始数组动态获取PHP中最后一个公共数组值,php,arrays,Php,Arrays,我有下面给出的原始数组 $orginal_arra = Array( [0] => 53_0.1, [1] => 53_0.3, [2] => 54_0.2, [3] => 54_0.1, [4] => 54_0.1, [5] => 54_0.19, [6] => 56_0.19, [7] => 56_0.50 ); 上面的数组可以通过“u”分隔来爆炸 foreach($or
$orginal_arra = Array(
[0] => 53_0.1,
[1] => 53_0.3,
[2] => 54_0.2,
[3] => 54_0.1,
[4] => 54_0.1,
[5] => 54_0.19,
[6] => 56_0.19,
[7] => 56_0.50
);
上面的数组可以通过“u”分隔来爆炸
foreach($orginal_arra as $part) {
if($part){
$arr_parts = explode("_",$part);
$arr1[] = $arr_parts[0];
$arr2[] = $arr_parts[1];
}
}
sperating后的$arr1结果
Array (
[0] => 53,
[1] => 53,
[2] => 54,
[3] => 54,
[4] => 54,
[5] => 54,
[6] => 56,
[7] => 56
)
Array (
[0] => 0.1,
[1] => 0.3,
[2] => 0.2,
[3] => 0.1,
[4] => 0.1,
[5] => 0.19,
[6] => 0.19,
[7] => 0.50
)
sperating后的$arr2结果
Array (
[0] => 53,
[1] => 53,
[2] => 54,
[3] => 54,
[4] => 54,
[5] => 54,
[6] => 56,
[7] => 56
)
Array (
[0] => 0.1,
[1] => 0.3,
[2] => 0.2,
[3] => 0.1,
[4] => 0.1,
[5] => 0.19,
[6] => 0.19,
[7] => 0.50
)
我想通过组合$arr1和$arr2返回数组,如下所示
$array = Array(
[0] => 53_0.3,
[1] => 54_0.19,
[2] => 56_0.50
);
是否有任何方法可以使用PHP数组获得上述结果。您可以使用
array\u值将数组分组为关联数组。使用array\u values
将关联数组转换为简单数组
$orginal_arra = array(
'53_0.1',
'53_0.3',
'54_0.2',
'54_0.1',
'54_0.1',
'54_0.19',
'56_0.19',
'56_0.50'
);
$result = array_values(array_reduce($orginal_arra, function($c,$v){
$key = explode('_', $v); //explode the value
$c[$key[0]] = $v; //Use the first element of the explode value as a key and just overide the value
return $c;
}, array()));
echo "<pre>";
print_r( $result );
echo "</pre>";
可以使用array\u值
将数组分组为关联数组。使用array\u values
将关联数组转换为简单数组
$orginal_arra = array(
'53_0.1',
'53_0.3',
'54_0.2',
'54_0.1',
'54_0.1',
'54_0.19',
'56_0.19',
'56_0.50'
);
$result = array_values(array_reduce($orginal_arra, function($c,$v){
$key = explode('_', $v); //explode the value
$c[$key[0]] = $v; //Use the first element of the explode value as a key and just overide the value
return $c;
}, array()));
echo "<pre>";
print_r( $result );
echo "</pre>";
strstr()
是完美的临时密钥生成器。每个循环键都将覆盖上一个值。循环完成后,只需使用array\u values()
重新索引结果数组。干净简单
代码:()
输出:
<?php
$array1= array(
"0" => 53,
"1" => 53,
"2" => 54,
"3" => 54,
"4" => 54,
"5" => 54,
"6" => 56,
"7" => 56
);
$array2 = array (
"0" => 0.1,
"1" => 0.3,
"2" => 0.2,
"3" => 0.1,
"4" => 0.1,
"5" => 0.19,
"6" => 0.19,
"7" => 0.50
);
$array1 = array_reverse($array1, true);
$array1 = array_unique($array1);
foreach($array1 as $key=>$val){
$array1[$key] = $val."_".number_format((float)$array2[$key], 2, '.', '');
}
print_r(array_reverse($array1));
strstr()
是完美的临时密钥生成器。每个循环键都将覆盖上一个值。循环完成后,只需使用array\u values()
重新索引结果数组。干净简单
代码:()
输出:
<?php
$array1= array(
"0" => 53,
"1" => 53,
"2" => 54,
"3" => 54,
"4" => 54,
"5" => 54,
"6" => 56,
"7" => 56
);
$array2 = array (
"0" => 0.1,
"1" => 0.3,
"2" => 0.2,
"3" => 0.1,
"4" => 0.1,
"5" => 0.19,
"6" => 0.19,
"7" => 0.50
);
$array1 = array_reverse($array1, true);
$array1 = array_unique($array1);
foreach($array1 as $key=>$val){
$array1[$key] = $val."_".number_format((float)$array2[$key], 2, '.', '');
}
print_r(array_reverse($array1));
如果要组合$array1
和$array2
,可以执行此操作:
Array
(
[0] => 53_0.30,
[1] => 54_0.19,
[2] => 56_0.50
)
如果要组合$array1
和$array2
,可以执行此操作:
Array
(
[0] => 53_0.30,
[1] => 54_0.19,
[2] => 56_0.50
)
是我发现这一点真的不清楚吗?你必须迭代一个数组并从中获取值,然后在第二个数组中的同一个键下获取值。人们(我指的是我)通常都很感激,如果他们不必手动引用你的测试用例的值,如果他们真的试图通过制定一个有效的解决方案来提供帮助的话。不,很好。“对我来说很清楚。”阿波克瑞福斯同意了。这确实让我在手机上的速度变慢了。是不是只有我发现这一点真的不清楚?你必须迭代一个数组并从中获取值,然后在第二个数组中的同一个键下获取值。People(我指的是我的People)如果他们不需要手动引用您的测试用例的值,如果他们真的试图通过制定一个有效的解决方案来帮助您,那么通常会表示感谢。不,这很好。“对我来说很清楚。”阿波克瑞福斯同意了。这当然让我在手机上慢了下来。当您使用explode()
将字符串“减半”时,出于两个原因,请使用2
作为可选的限制参数。它向将来的读者强调了代码的意图,并告诉explode它可以在第一次爆炸后停止。当您使用explode()
将字符串“减半”时,请使用2
作为可选的限制参数,原因有二。它向未来的读者强调了代码的意图,并告诉explode它可以在第一次爆炸后停止。这个答案是不必要的复杂。这个答案是不必要的复杂。