2012-05-11 2 views
0

У меня есть массив PHP.Возвращаемые значения как ключи в новом массиве

array 
    0 => int 1 
    1 => int 13 
    2 => int 16 
    3 => int 17 
    4 => int 18 

То, что я хочу Возвращается новый массив так:

array(1, 13, 16, 17, 18) 

т.е.. Значения теперь являются ключами нового массива

Я пробовал array_flip, но мне нужно отбросить значения. Я googled вокруг и там не кажется что-нибыдь что связывает.

Если кто-то может указать мне в правильном направлении или обеспечить лучшее решение, было бы очень признательно.

EDIT:

array_flip возвращается:

array 
    1 => int 0 
    13 => int 1 
    16 => int 2 
    17 => int 3 
    18 => int 4 

То, что я хочу, это просто: array(1, 13, 16, 17, 18).

Я понимаю это неправильно? Действительно ли вывод, который я хочу получить, имеет нулевые значения для каждого ключа?

+8

Два размещенных вами массива идентичны. И массив всегда имеет значения, так что означает «падение значений»? – Jon

+0

Хм, никогда не видел массив без значений! возможно, вы имеете в виду «null» или другое значение по умолчанию. пожалуйста, обновите, потому что это не имеет смысла. –

+0

Я хотел бы помочь, но я не понимаю, что вам нужно. – kapa

ответ

1

Вы, кажется, не понимаете, как работают массивы. Каждый массив, содержащий хотя бы одно значение, всегда имеет ключ (ы) и значение (значения). В случае это:

array(1, 13, 16, 17, 18) 

значения являются 1,13,16, ... и ключи неявно устанавливается PHP. В этом случае значение 1 имеет ключ 0, значение 13 имеет ключ 1 и т. Д.

Единственное различие между вашим первым и вторым массивом состоит в том, что в первом случае у вас есть ключи, определенные явно. Короче говоря, массивы идентичны.

+0

Вы правы. Я только что пересмотрел мой код, и он делает именно то, что вы сказали. Моя проблема заключается в другом. Спасибо, что заставили меня видеть это сейчас. – rgin

+0

Если мой ответ ответил на ваш вопрос, вы должны его принять (щелкните по зеленому значку рядом с ответом). Ура! –

+0

Мне просто пришлось подождать, пока СО, чтобы я согласился. =) Спасибо, опять. – rgin

-2

вы можете сделать ассоциативный массив:

$hello_im_the_new_array=Array(); 
foreach $array_with_keys as $im_a_key_to_other_array { 
     $hello_im_the_new_array[$im_a_key_to_other_array]=$im_the_content_of_that_key_in_the_new_array 
} 

или если вы ищете прочитать значения другого массива:

foreach $array_with_keys as $im_a_key_to_other_array { 
    echo $the_array_with_values[$im_a_key_to_other_array]; 
} 

, если вы не ищете ... Я не понимаю ваш вопрос

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