2015-04-09 4 views
2

Я попытался напечатать все значения моего массива, однако я не могу получить общее количество массива. Я пробовал count(), sizeOf() и array_count_values, но ни одна из этих функций, похоже, не выполняет эту работу.Как подсчитать значения в массиве?

$query = DB::getInstance()->query("SELECT orderStatus FROM customerOrders");     


foreach ($query->results() as $orderered) { 

    $result_array = array($orderered); 
//print_r($result_array); 

    $orderData = array_map(function ($object) { return $object->orderStatus; }, $result_array); 

    $test = json_decode(json_encode($result_array), true); 



    $ORvalue = serialize($test); 


    $ORvalue2 = unserialize($ORvalue); 


    $orderValueNEW = call_user_func_array('array_merge', $ORvalue2); 


    print_r($orderValueNEW);//debug 


}//close foreach loop 

Результаты массива после печати:

Array ([orderStatus] => 0) 
Array ([orderStatus] => 0) 
Array ([orderStatus] => 0) 
Array ([orderStatus] => 1) 
Array ([orderStatus] => 1) 

После выполнения подсчет() и SizeOf:

11111 

После запуска array_count_values:

echo (array_count_values($orderValueNEW)); 
ArrayArrayArrayArrayArray 
+0

Вы пытаетесь подсчитать общее количество результатов из базы данных? – wavemode

+0

Не сумма всех из них, но сколько их есть в базе данных. –

+1

'count ($ query-> results());' – Midas

ответ

1

count функция, конечно, работать здесь:

$results = $query->results(); 

$num = count($values); 

foreach($results as $ordered) { // etc. 
0

это выглядит мне нравится, что ты, вероятно, бежишь рассчитывать ($ orderValueNew); который каждый раз содержит один массив, с ключом orderstatus. Независимо от того, имеет ли порядок orderstatus значение 0 или 1, не имеет значения.

Смежные вопросы