Проблема с массивом php

micr0b

Новичок
Здравствуйте, делав код чтоб удалить дубликаты в массиве.
Зделал но почему в массиве diameter есть значения ----> "0":"15","1":"8","3":"34"
а не "15","8","34"
откуда берутся мусор "0": "1": "3":


Вот сатм код:
PHP:
<?
удалил...
?>
Зарание спасибо!
 

antson

Новичок
Партнер клуба
http://docs.php.net/manual/en/function.array-unique.php - посмотреть внимательно в документации как функция поступает с ключами элементов

json_encode как сам видишь для ключей идущих с 0 подряд их не кодирует,
а вот в случае пропуска 0,1,3 ключи закодированы в виде
"ключ":"значение"
 

micr0b

Новичок
хм. интересно.. но если мне нужно сформировать вывод массива все таки через json_encode именно такой структорой:

{"width":["195","200","170","height":["65","50","30","24"],"diameter":["8"],"idfirma":["1"]}

как тогда поступить?
 

antson

Новичок
Партнер клуба
сквизинг (squeezing) массива .
Решение в лоб - пересобрать массив
function squeezing($a){
$r=array();
foreach($a as $k =>$v){
$r[]=$v;
}
return $r;
}
 

micr0b

Новичок
Да дествительно antson, вы правы!

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

и если дописать функцию array_unique к $r[] = array_unique($v);
то тогда опять же будет создаваца ключи!
 

Adelf

Administrator
Команда форума
antson
я ошибаюсь или вы только что написали реализацию array_values? :)

micr0b
PHP:
$newArr['width'] = array_values(array_unique($origArr['width']));
м?
 

antson

Новичок
Партнер клуба
Adelf
Задача такая, что проще написать 3 строчки кода , чем в мане найти нужную функцию ...
micr0b
А кто говорил ? что она будет дубли убирать ?
а Адеф уже окончательный и лучше вариант дал.
 

micr0b

Новичок
ага, мой код не рациональный, переделал.

Спасибо antson и Adelf, ребята реально помогли.
 
Сверху