Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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,我想创建一个列表,如果它已经在数组中添加到值+1中 电流输出 [1] => Array ( [source] => 397 [value] => 1 ) [2] => Array ( [source] => 397 [value] => 1 ) [3] => Array ( [source] => 1314 [

我想创建一个列表,如果它已经在数组中添加到值+1中

电流输出

[1] => Array
    (
        [source] => 397
        [value] => 1
    )

[2] => Array
    (
        [source] => 397
        [value] => 1
    )

[3] => Array
    (
        [source] => 1314
        [value] => 1
    )
我想要实现的目标

[1] => Array
    (
        [source] => 397
        [value] => 2
    )

[2] => Array
    (
        [source] => 1314
        [value] => 1
    )
我当前的PHP功能减弱了

        foreach ($submissions as $timefix) {

              //Start countng
              $data = array(
                    'source' => $timefix['parent']['id'],
                    'value' => '1'
              );

              $dataJson[] = $data;

    }

            print_r($dataJson);

为此,PHP有一个名为
array\u count\u values
的函数。也许你可以用它

例如:

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

为此,PHP有一个名为
array\u count\u values
的函数。也许你可以用它

例如:

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

为此,PHP有一个名为
array\u count\u values
的函数。也许你可以用它

例如:

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

为此,PHP有一个名为
array\u count\u values
的函数。也许你可以用它

例如:

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

只需使用关联的数组:

$dataJson = array();

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];

    if (!isset($dataJson[$id])) {
        $dataJson[$id] = array('source' => $id, 'value' => 1);
    } else {
        $dataJson[$id]['value']++;
    }
}

$dataJson = array_values($dataJson); // reset the keys - you don't nessesarily need this

只需使用关联的数组:

$dataJson = array();

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];

    if (!isset($dataJson[$id])) {
        $dataJson[$id] = array('source' => $id, 'value' => 1);
    } else {
        $dataJson[$id]['value']++;
    }
}

$dataJson = array_values($dataJson); // reset the keys - you don't nessesarily need this

只需使用关联的数组:

$dataJson = array();

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];

    if (!isset($dataJson[$id])) {
        $dataJson[$id] = array('source' => $id, 'value' => 1);
    } else {
        $dataJson[$id]['value']++;
    }
}

$dataJson = array_values($dataJson); // reset the keys - you don't nessesarily need this

只需使用关联的数组:

$dataJson = array();

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];

    if (!isset($dataJson[$id])) {
        $dataJson[$id] = array('source' => $id, 'value' => 1);
    } else {
        $dataJson[$id]['value']++;
    }
}

$dataJson = array_values($dataJson); // reset the keys - you don't nessesarily need this

这并不完全是您想要的输出,因为数组键没有保留,但是如果适合您,您可以使用项目ID作为数组键。这将简化您的代码,使其不需要循环遍历已经可用的结果:

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];
    if (array_key_exists($id, $dataJson)) {
        $dataJson[$id]["value"]++;
    } else {
        $dataJson[$id] = [
            "source" => $id,
            "value" => 1
        ];
    }
}
print_r($dataJson);

这并不完全是您想要的输出,因为数组键没有保留,但是如果适合您,您可以使用项目ID作为数组键。这将简化您的代码,使其不需要循环遍历已经可用的结果:

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];
    if (array_key_exists($id, $dataJson)) {
        $dataJson[$id]["value"]++;
    } else {
        $dataJson[$id] = [
            "source" => $id,
            "value" => 1
        ];
    }
}
print_r($dataJson);

这并不完全是您想要的输出,因为数组键没有保留,但是如果适合您,您可以使用项目ID作为数组键。这将简化您的代码,使其不需要循环遍历已经可用的结果:

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];
    if (array_key_exists($id, $dataJson)) {
        $dataJson[$id]["value"]++;
    } else {
        $dataJson[$id] = [
            "source" => $id,
            "value" => 1
        ];
    }
}
print_r($dataJson);

这并不完全是您想要的输出,因为数组键没有保留,但是如果适合您,您可以使用项目ID作为数组键。这将简化您的代码,使其不需要循环遍历已经可用的结果:

foreach ($submissions as $timefix) {
    $id = $timefix['parent']['id'];
    if (array_key_exists($id, $dataJson)) {
        $dataJson[$id]["value"]++;
    } else {
        $dataJson[$id] = [
            "source" => $id,
            "value" => 1
        ];
    }
}
print_r($dataJson);

你应该自己简化这个。比如:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>
然后,如果您确实需要指定的格式,您可以使用以下内容:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>

您应该自己简化这个过程。比如:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>
然后,如果您确实需要指定的格式,您可以使用以下内容:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>

您应该自己简化这个过程。比如:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>
然后,如果您确实需要指定的格式,您可以使用以下内容:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>

您应该自己简化这个过程。比如:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>
然后,如果您确实需要指定的格式,您可以使用以下内容:

<?
  $res = Array();
  foreach ($original as $item) {
    if (!isset($res[$item['source']])) $res[$item['source']] = $item['value'];
    else $res[$item['source']] += $item['value'];
  }
?>
Array(
  [397] => 2,
  [1314] => 1
)
<?
  $final = Array();
  foreach ($res as $source=>$value) $final[] = Array(
    'source' => $source,
    'value' => $value
  );
?>

此代码将进行计数并生成一个
$new
数组,如示例中所述

$data = array(
    array('source' => 397, 'value' => 1),
    array('source' => 397, 'value' => 1),
    array('source' => 1314, 'value' => 1),
);

$new = array();
foreach ($data as $item)
{
    $source = $item['source'];
    if (isset($new[$source]))
        $new[$source]['value'] += $item['value'];
    else
        $new[$source] = $item;
}
$new = array_values($new);

此代码将进行计数并生成一个
$new
数组,如示例中所述

$data = array(
    array('source' => 397, 'value' => 1),
    array('source' => 397, 'value' => 1),
    array('source' => 1314, 'value' => 1),
);

$new = array();
foreach ($data as $item)
{
    $source = $item['source'];
    if (isset($new[$source]))
        $new[$source]['value'] += $item['value'];
    else
        $new[$source] = $item;
}
$new = array_values($new);

此代码将进行计数并生成一个
$new
数组,如示例中所述

$data = array(
    array('source' => 397, 'value' => 1),
    array('source' => 397, 'value' => 1),
    array('source' => 1314, 'value' => 1),
);

$new = array();
foreach ($data as $item)
{
    $source = $item['source'];
    if (isset($new[$source]))
        $new[$source]['value'] += $item['value'];
    else
        $new[$source] = $item;
}
$new = array_values($new);

此代码将进行计数并生成一个
$new
数组,如示例中所述

$data = array(
    array('source' => 397, 'value' => 1),
    array('source' => 397, 'value' => 1),
    array('source' => 1314, 'value' => 1),
);

$new = array();
foreach ($data as $item)
{
    $source = $item['source'];
    if (isset($new[$source]))
        $new[$source]['value'] += $item['value'];
    else
        $new[$source] = $item;
}
$new = array_values($new);