непонятки с тернарным оператором

Статус
В этой теме нельзя размещать новые ответы.

sunyang

Новичок
почему вот это выражение не срабатывает?

PHP:
$arr3 = array('name' => ($a = current($rs2) ? $a['brand_name'] : ''));
print_r(arr3['name']) выдает пустоту

усли написать так:

$arr3 = array('name' => ($a = current($rs2) ? 2 : ''));

выдает: 2

$a вроде должна создаваться в условии ($a = current($rs2) ? $a['brand_name'] : '')
 

Фанат

oncle terrible
Команда форума
вне зависимости от того, что возвращает print_r(arr3['name'])
 

hell0w0rd

Продвинутый новичок
PHP:
$arr3['name'] = $a = current($rs2) ? $a['brand_name'] : '';
Только вот названия переменных оставляют желать лучшего)
Сам потом в таком коде не разберешься)
И не понятно зачем элемент массива присваивать в массив?
 

sunyang

Новичок
я бы за такой код просто убивал
чем тебя мой код не устраивает? вот тебе не по* как я вывожу данные. Судя по твоим постам и ответу ты вообще не кодишь, чтобы не поубивали за говнокод


Спасибо, Ярославу, код переписал (про ковычки забыл)
PHP:
$out = array(
			'BRAND' => array(
				'name' => (($a = current($rs2)) ? $a['brand_name']: ''),
				'alias' => (($a = current($rs2)) ? $a['brand_alias']: '')
			)
		);
 

hell0w0rd

Продвинутый новичок
:D
А зачем ты в $a что-то присваиваешь вообще?)))
Зачем два раза функцию с одинаковым аргументом вызываешь?
Говнокодишь и хамишь)
нервным нельзя в программисты)
 

sunyang

Новичок
:D
А зачем ты в $a что-то присваиваешь вообще?)))
Зачем два раза функцию с одинаковым аргументом вызываешь?
Говнокодишь и хамишь)
нервным нельзя в программисты)

$rs2 - многомерный массив.
Может подскажешь как выбрать из текущего элемента массива $rs2 элемент (который тоже массив) с ключем brand_name без присвоения переменной?

вот про два раза функцию с одним элементо, согласен.
 

hell0w0rd

Продвинутый новичок
$rs2 - многомерный массив.
Может подскажешь как выбрать из текущего элемента $rs2 (который тоже массив) элемент с ключем brand_name без присвоения переменной?
Может подскажу)
PHP:
$var = $rs2['hello']['world']['bogaga']['and']['so']['on'];
структуру многомерного массива покажи, чтобы понять что у тебя выбрать не получается.
 

sunyang

Новичок
Что-то типа вот такого:
(все элементы с одинаковым brand_name и brand_alias)

PHP:
[6] => Array
        (
            [id] => 6
            [brand_id] => 1
            [brand_name] => Alloc
            [brand_alias] => alloc
            [params] => Array
                (
                    [3] => Array
                        (
                            [name] => Класс
                            [value] => 33
                        )
                )

        )

 [11] => Array
        (
            [id] => 11
            [brand_id] => 1
            [brand_name] => Alloc
            [brand_alias] => alloc
            [params] => Array
                (
                   [3] => Array
                        (
                            [name] => Класс
                            [value] => 9
                        )

                )

        )
 

hell0w0rd

Продвинутый новичок
А нафига такая структура у массива?
Очевидно что brand_* повторяется, выдели наверх
PHP:
$brand = array(
    'id' => 1,
    'name' => 'Alloc',
    'alias' => 'alloc',
    'params' => array(
        array(
            'id' => 1,
            'name' => 'Класс'
            'value' => 9
        ),
        array(
            'id' => 2,
            'name' => 'Класс'
            'value' => 9
        ),
    )
);
Впрочем если и такая структура - что должно получиться-то?
 

sunyang

Новичок
это куча продуктов с одинаковыми брендами, нужно сформировать отдельный массив с брендом. Т.к. в массиве с продуктам бренды все одинаковые, то просто выдераю название бренда из текущего элемента массива с продуктами. А т.к. айдишники в массиве с продуктами произвольные, то беру current элемент. Можно и последний взять)
 

hell0w0rd

Продвинутый новичок
sunyang
хрень какая-то, перебирай по человечески, а не через current
через месяц уже не разберешься в том что ты там написал;)
 

Фанат

oncle terrible
Команда форума
Тема закрыта.

Проблемы личного характера и бессмысленные споры между участниками не являются предметом обсуждения форума.
Обсуждайте их в привате.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху