2015-08-29 2 views
0

Мне интересно, какой самый быстрый способ взять 3 массива с неравномерным количеством значений и сделать их еще? Мне нужно либо срезать два массива, либо проложить два массива. Прокладка может работать лучше всего. Я пытаюсь помещать данные фондового рынка в график высоких диаграмм и требует, чтобы массивы имели одинаковое количество значений.Самый быстрый способ сделать 3 массива того же размера?

Например

print_r(count($array1)); //prints 2000 
print_r(count($array2)); //prints 1801 
print_r(count($array3)); //prints 1951 

//The arrays contain stock prices which are floats in this format: 0.00 

мне нужно $ array1 и $ array3 отрезать жир от дна и становятся размером $ array2 (1801). Или мне нужно наложить $ array2 и array3 на 0.00 цифры, пока они не станут размером $ array1. Прокладка - мое первое предпочтение.

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

+0

все они индексируются то же самое? 0,1,2, .... – mdamia

+0

Что вы пробовали? Что означает «отрезать жир от дна»? Что такое «дно» массива? –

ответ

3

Это довольно просто, стоит сначала проверить официальную документацию PHP. Предполагая, что вы знаете, какой массив является самым большим (допустим, это array1), вы можете использовать array_pad.

$array2 = array_pad($array2, count($array1), 0); 
$array3 = array_pad($array3, count($array1), 0); 

Если вы не уверены, что является самым большим, петля над ними с count() должна быть довольно быстрой и легкой.

Более подробная информация о array_pad: http://php.net/manual/en/function.array-pad.php

+0

Вы правы, это легко. Я должен был изучить это немного раньше, прежде чем спрашивать. Благодарю. – user3515232

+0

Не беспокойтесь, рад, что я мог бы помочь. –

-1

это должно работать

$new_array_1 = []; 
$new_array_3 = []; 

foreach ( $array2 as $key => $value){ 
    $new_array_1[] = $array1[$key]; 
    $new_array_3[] = $array3[$key]; 
} 

теперь все массивы равны массив 2.

+0

Любая причина для downvote? – mdamia

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