Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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_Multidimensional Array_Foreach - Fatal编程技术网

PHP将具有相同键的数组值提取到另一个数组中

PHP将具有相同键的数组值提取到另一个数组中,php,multidimensional-array,foreach,Php,Multidimensional Array,Foreach,我有一个这样的数组: $diff_date_results = Array ( [0] => Array ( [differential] => 7.7 [date] => 2012-12-30 ) [1] => Array ( [differential] => 8.2 [date] => 2012-12-31 ) [2] => Array ( [differential] =&g

我有一个这样的数组:

    $diff_date_results = 
    Array ( 
        [0] => Array ( [differential] => 7.7 [date] => 2012-12-30 ) 
        [1] => Array ( [differential] => 8.2 [date] => 2012-12-31 ) 
        [2] => Array ( [differential] => 9.9 [date] => 2013-01-03 )
    )
我想从每个内部数组的差分键中提取所有值,以便在新创建的数组上使用array_sum函数

我有这个,它为我画出了三个数字,但是我得到了每个数字的php错误作为一个未定义的索引。(注意:第55行C:\wamp\www\jquery\test.php中的未定义索引:7.7)

到目前为止,我的代码如下:

    $diff_results = array();
    foreach($diff_date_results as $entry){
        $diff_results[$entry['differential']];
    }
    print_r($diff_results);
我相信它很简单,我已经在它周围玩了很长时间了,任何帮助都会很好

谢谢

$diff_results = array();
foreach($diff_date_results as $entry){
    $diff_results[] = $entry['differential'];
}

//just for displaying all differential
print_r($diff_results);
$diff_results = array_map($diff_date_results,
                          function($entry) { return $entry['differential']; });
现在,您可以对$diff\u结果使用array\u sum

此外,若你们想要求和,那个么你们也可以使用下面的方法

$diff_results = "";
foreach($diff_date_results as $entry){
    $diff_results = $diff_results + $entry['differential'];
}

//$diff_results will have sum of all differential
echo $diff_results;
这样做:

$diff_results = array();

foreach($diff_date_results as $key => $entry){
    $diff_results[] .= $entry['differential']];
}

 print_r($diff_results);

谢谢。

对于像我这样遇到这个问题的人,我认为最好的解决方案是以下的工作版本:

$diff_results = array();
foreach($diff_date_results as $entry){
    $diff_results[] = $entry['differential'];
}

//just for displaying all differential
print_r($diff_results);
$diff_results = array_map($diff_date_results,
                          function($entry) { return $entry['differential']; });
$diff_results = array_map(function($entry)
                          { 
                          return $entry['differential']; 
                          }, 
                          $diff_date_results);

这是一个更优雅的单行解决方案(为了可读性,我已经扩展到5行)。

谢谢-你昨晚也帮了我,我真的很感激。我将在9分钟内接受答案。我不记得了,但这里唯一的意图/目标是学习新事物并指导我所知道的。谢谢你的回复,虽然
=
是针对字符串的,而不是数组。我只是尝试了一下,得到了
注意:数组到字符串的转换
。我用了一整天,昨天,它工作得很好。给我返回了一个数组。
$foo=array()$foo.=“bar”;echo$foo
打印
Arraybar
。你不能只回显数组。