Я пытаюсь сортировать и объединять массив, но я нахожу это очень запутанным.
Я вытащил данные из таблицы mysql:
$total = mysql_query("SELECT * FROM orders");
Затем я сортирую каждый столбец в массив:
while($result = mysql_fetch_assoc($total)) { $cst[] = $result['customer']; $partnumber[] = $result['partnumber']; $misc[] = $result['misc']; }
теперь у misc есть много записей, которые повторяются в случайном порядке, например
$misc = array( [0] => red, [1] = >red, [2] => blue, [3] => blue, [4] => blue, [5] => green, [6] =>red )
ВОПРОС: Каков наилучший способ подсчета количества красных, синих или зеленых элементов в $ misc? Как создать массив таким образом, чтобы $misc_num['red'] = 3
и т. Д.?
Используйте array_count_values
.
while($result = mysql_fetch_assoc($total)) { $cst[] = $result['customer']; $partnumber[] = $result['partnumber']; $misc[] = $result['misc']; if(array_key_exists($result['misc'], $misc_num)) { $misc_num[$result['misc']] += 1; } else { $misc_num[$result['misc']] = 1; } }
Я думаю, что это нужно!
Я рассматриваю ваши следующие коды
$ total = mysql_query ("SELECT * FROM orders");
while ($ result = mysql_fetch_assoc ($ total))
{
$ cst [] = $ result ['customer'];
$ partnumber [] = $ result ['partnumber'];
$ misc [] = $ result ['misc'];
}
$ misc = array (
[0] => красный,
[1] => красный,
[2] => синий,
[3] => синий,
[4] => синий,
[5] => зеленый,
[6] => красный
)
Теперь вы можете реализовать функцию array_count_values () здесь как
print_r (array_count_values ($ разное))
Это приводит к следующим данным
массив
(
[красный] => 3
[синий] => 3
[зеленый] => 1
)