2015-05-29 1 views
3

Я пытаюсь выбрать значения из заданного массива. Если такое же значение возвращается в массиве, мне нужно выбрать параметр. Как это сделать? ФункцияКак выбрать опцию в php из моего массива?

Html

<select multiple="" class="Designers" style="width: 100px;">    
          <option value="JOhn">JOhn</option> 
          <option value="JOhn1">JOhn1</option> 
          <option value="JOhn2">JOhn2</option> 
         </select> 

PHP

Array ([0] => JOhn[1] => JOhn2); 
$DesignerGet = Array ([0] => JOhn[1] => JOhn2[2] => JOhn2); 
$DesinerEdit = explode(',',$DesignerGet); 

<?php if('JOhn2' == 'JOhn2'){ ?> 
<option value="JOhn1">JOhn1</option> 
<?php } ?> 

Ожидаемый результат

<select multiple="" class="Designers" style="width: 100px;">    
          <option value="JOhn" selected>JOhn</option> 
          <option value="JOhn1">JOhn1</option> 
          <option value="JOhn2" selected>JOhn2</option> 
         </select> 
+0

что такое $ DesignerGet массив.? –

+0

$ DesignerGet = Array ([0] => JOhn [1] => JOhn2 [2] => JOhn2); –

+0

первый класть ваш полный код. второе усилие. третий ваш ожидаемый результат. то только каждый может помочь. и оба кода не являются полными. –

ответ

0

Использование array_unique() перед используйте массив.

$DesinerEdit = array_unique($DesignerGet); 

Удаляет повторяющиеся значения, и вы можете использовать массив, как хотите.

Refer php manual for this function

+0

проверить мой обновленный вопрос –

+0

Вы хотите сравнить два массива? – IshaS

+0

проверить ожидаемый результат –

0

Попробуйте это:

$DesignerGet = Array ([0] => JOhn[1] => JOhn2[2] => JOhn2); 
    foreach($DesinerEdit as $key=>$val) 
    { 
     $selected = ($val == 'JOhn1')?"selected ='selected' ":''; 
     <option value="JOhn1" <?php echo $selected ?>>JOhn1</option> 

    } 
0

Попробуйте этот способ ..

<?php 
    $arra = Array ('JOhn','JOhn2'); 
    $option = Array ('JOhn','JOhn1','JOhn2'); 
?> 

<select multiple class="Designers" style="width: 100px;">    
    <?php foreach($option as $key => $value){?> 
     <option value="<?php echo $value;?>" <?php echo (in_array($value,$arra)) ? 'selected' : '';?>><?php echo $value;?></option> 
    <?php }?> 
</select> 

Здесь я использовал in_array функцию для проверки значения, если значения в пределах массива ПОЛУЧИТЬ то 'будет выбран еще не

+1

Это выглядит как лучший ответ. Почему downvote? – Volvox

+0

Downvoters, пожалуйста, объясните причину, лежащую в основе downvoting. –

+0

@ Вольвокс, даже я не понимаю, почему меня нивелируют. –

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