2017-01-05 4 views
-2

Я хотел бы преобразовать массив строк в массив, который учитывает вхождения каждой строки и сохраняет ее в новом массиве в строковом индексе.Создание массива строк со значениями

[а] [а] [б] превратится в `массив ("а"=> "2", "б"=> "1")

EDIT: Я не знаю, исходные значения массива. Я еще не написал код, так как не знаю, как подойти к этой проблеме.

+3

показать код. – Dave

ответ

1

Попробуйте это: используйте array_count_values .for больше посещения здесь: http://php.net/manual/en/function.array-count-values.php

$arr=array("a","a","b"); 
print_r(array_count_values($arr)); 

выход:

Array 
(
    [a] => 2 
    [b] => 1 
) 
+0

Я не знаю исходных значений массива. –

+0

@ImriPersiado, если это не многомерный массив выше кода, будет работать для любого массива. –

1

array_count_values() лучше всего подходит для ваших потребностей! Он делает то, что вам нужно, что означает подсчет вхождения элемента в вашем массиве, создание другого массива в результате, содержащем для ключей элемент, а для значений - номер этого элемента.

(Exemple взяты из Php документации)

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

приведет массив, содержащий:

Array 
(
    [1] => 2 
    [hello] => 2 
    [world] => 1 
) 
Смежные вопросы