Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态获取PHP中最后一个公共数组值_Php_Arrays - Fatal编程技术网

动态获取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它可以在第一次爆炸后停止。这个答案是不必要的复杂。这个答案是不必要的复杂。