Вывод значений за счёт их ключей

DenVeroid

Новичок
Вывод значений за счёт их ключей

Пытаюсь вывести имена через запятую


Имеется массив содежащий имена


PHP:
$array_name=array(
                    '1'       =>  'name1',
                    '2'       =>  'name2',
                    '3'       =>  'name3',
                    '4'       =>  'name4',
                    '5'       =>  'name5',
                    '6'       =>  'name6',
                    '7'       =>  'name7',
                    '8'       =>  'name8',
                    '9'       =>  'name9',
                    '10'      =>  'name10',
);
вот напиал код, но почемуто выводит одно значение в массиве, а остальные другие вместо имён выводит Array
PHP:
 $array_id = '2,7,3,9,1';
 $ids = explode(',', $array_id);
 $count_ids = count($ids);


for($i=0; $i<$count_ids; $i++){
return $array_name .= array_search($ids[$i], array_flip($array_name)).', ';
}
$array_id - это переменная содержит ключи по которым выводятся имена к этим значениям
где я мог допустить ошибку, или может есть более орегинальней моего кода
 

Stm

Новичок
зачем флипать массив и искать элемент с помощью array_search которая, скорее всего, перебирает последовательно элементы, если ключ для того и сделан чтоб легко и быстро получать нужный элемент?
PHP:
$str_name='';
for($i=0; $i<$count_ids; $i++){
	$str_name .= $array_name[$ids[$i]].', ';
}
хотя я бы предпочел:
PHP:
function f($sel,$names){
	$selNames=array();
	foreach($sel as $k)
		$selNames[]=$names[$k];
	return $selNames;
}

$str_name=implode(', ',f($ids,$array_name));
 

DenVeroid

Новичок
Stm, честно сказать не один код не пошол, пробывал изменять, неполучается, в последнем твоём примере постоянно выводит ошибку
Warning: Invalid argument supplied for foreach() in C:\server\www\exchanger\functions.php on line 100

на сотой линии находиться
foreach($sel as $k)
 

Stm

Новичок
а слабо сделать маленький скрипт не на 100 строчек, а на 10 и убедиться, что код пошел
$sel должен быть массивом ключей, а $names массивом имен с соответствующими ключами
PHP:
echo implode(', ',f(array(2,4),array(1=>'name1',2=>'name2',3=>'name3',4=>'name4')));
http://faq.phpclub.ru/practice.debug.html
 
Сверху