Пример:Как добавить отсутствующий индекс в массив в php?
У меня и массив как это:
Array ( [0] => Apple, [2] => Оранжевый [5] => груша [8] => груша )
Есть функция, чтобы завершить отсутствующие индексы: 1,3,4,6,7 ????
Пример:Как добавить отсутствующий индекс в массив в php?
У меня и массив как это:
Array ( [0] => Apple, [2] => Оранжевый [5] => груша [8] => груша )
Есть функция, чтобы завершить отсутствующие индексы: 1,3,4,6,7 ????
Это должно быть быстрее для больших массивов. Для меньших массивов будет выполняться любой метод.
$existingKeys = array_keys($array);
//you can use any value instead of null
$newKeys = array_fill_keys(range(min($existingKeys), max($existingKeys)), null);
$array += $newKeys;
//optional, probably not needed
ksort($array);
Если то, что вы пытаетесь сделать, это изменить порядок массива, так что вы получите
Array([0] => Apple [1] => Orange [2] => Pear [3] => Pear)
Просто создать новый массив и скопировать значения в него. Он будет выделять новые индексы последовательно
т.е.
$new_array = array();
for($value in $old_array)
$new_array[] = $value;
вы могли бы попробовать для() от самого низкого показателя с самым высоким и полным, если он пустой
for($i = 0 ;$i <= 8 ; $i++)
{
//if it's not set
if(!isset($array[$i]))
{
//set to empty
$array[$i] = "";
}
}
Кроме того, вы могли бы рассчитывать сначала количество элементов на массиве и обернуть его функцией
function completeIndexes($array)
{
$total = count($array);
for($i = 0 ;$i < $total ; $i++)
{
//if it's not set
if(!isset($array[$i]))
{
//set to empty
$array[$i] = "";
}
}
return $array;
}
for($i=0;i<count($array);++$i){
$array[$i] = isset($array[$i])? $array[$i] : '';
}
Он просто заполняет недостающие ключи пустой строкой. Не уверен, что это вам подходит.
Редактировать
Просто заметил Perr0_hunter писал почти то же самое, прежде чем я сделал: P
использовать array_Values () вместо вашего цикла for – OIS