2013-09-13 3 views
0

У меня есть ассоциативный массив пар значений ключа (ключ и значение точно такие же, основываясь на том, как их генерирует система). Я хотел бы взорвать только ключи или просто значения (что не имеет значения) - есть ли способ сделать это?Более эффективный способ генерации этой строки

Прямо сейчас у меня есть цикл foreach, и этот цикл foreach выполняет итерацию по массиву, чтобы получить значение, добавив его в строку и добавив запятую после. Это, очевидно, добавляет еще одну запятую, чем мне нужно, поскольку мне не нужна конечная запятая.

т.е.

первой итерации:

item1, 

второй итерации:

item1, item2, 

третьей итерации:

item1, item2, item3, 

т.д.

Каков наиболее эффективный способ взлома всех ключей или всех значений массива (но не обоих)? Лучше ли метод foreach? Если да, то какой лучший способ избавиться от конечной запятой - используйте переменную счетчика $ или просто обрезайте конечную запятую (кажется, что последнее было бы более эффективным, но менее элегантным).

+2

Ирония заключается в том, что ответ на вопрос 'Я хотел бы ** Implode ** только ключи или только значения (которое не имеет значения)' – CD001

ответ

4

Я предполагаю, что это PHP; встроенные функции могут справиться с этим без необходимости создания циклов.

// For the keys 
$output = implode(',', array_keys($myArr)).', '; // if you need that trailing comma 
$output = implode(',', array_keys($myArr)); // without the trailing comma. 

// For the values (note that the keys are discarded by the implode function) 
$output = implode(',', $myArr).', '; // if you need that trailing comma 
$output = implode(',', $myArr); // without the trailing comma. 
+0

О хороший, он автоматически отбрасывает ключи? Отлично. Отличный ответ. –

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