Armazernar стоимость и количество array PHP


Нужно подметать во-первых array и сохраняет значение и объем этого значения в других array. Я не получаю, потому что я с трудом на время хранения значений в другой - array.

Array:

array(5) {
  [0]=>
  array(1) {
    [0]=>
    string(2) "12"
  }
  [1]=>
  array(1) {
    [0]=>
    string(2) "13"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "100"
  }
  [3]=>
  array(1) {
    [0]=>
    string(3) "12"
  }
  [4]=>
  array(1) {
    [0]=>
    string(3) "13"
  }
}

Array, стоимости и количестве, которые нужны:

array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(2) "12"
    int() "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(2) "13"
    int() "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "100"
    int() "1"
  }
}
 3
Author: Tmc, 2016-11-09

3 answers

Привет, Кевин

Я Считаю, что вы можете решить этот вопрос с помощью функции array_count_values(). Документации здесь.

В целях использования этой функции, ваши ценности станут ключами в другой массив. С foreach ($array as $valor => $ocorrencias) можете ли вы пройти array производства и положил его в нужном формате. ;)

 2
Author: Macário Martins, 2016-11-09 11:45:03

, дополнить ответ Макария Мартинс, сначала придется преобразовать многомерный массив в массив просто... Использовал этот пример ОС

$dados_unidimensional = call_user_func_array('array_merge', $dados_bidimensional);

Это будет превратить ваш массив

[ [ "12" ], [ "13" ], [ "100" ], [ "12" ], [ "13" ] ]

[ "12", "13", "100", "12", "13" ]

С этим вы можете использовать array_count_values()

$resultado = array_count_values($dados_unidimensional);

И $результат будет что-то типа

["12" => 2, "13" => 2, "100" => 1]
 2
Author: Bartolomeu S. Gusella, 2017-05-23 12:37:23

Его array, кажется, multi-dimensional. Попробуйте таким образом:

<?php

$ar1[] = array("red","green","yellow","blue");
$ar1[] = array("green","yellow","brown","red","white","yellow");
$ar1[] = array("red","green","brown","blue","black","yellow");

$res = array_icount_values ($ar1);
print_r($res);

function array_icount_values($arr,$lower=true) {
     $arr2=array();
     if(!is_array($arr['0'])){$arr=array($arr);}
     foreach($arr as $k=> $v){
      foreach($v as $v2){
      if($lower==true) {$v2=strtolower($v2);}
      if(!isset($arr2[$v2])){
          $arr2[$v2]=1;
      }else{
           $arr2[$v2]++;
           }
    }
    }
    return $arr2;
} 

$ar1[] обменивайтесь своими arrays)

 0
Author: Alisson Acioli, 2016-11-09 11:48:25