2016-01-16 3 views
1

Я не уверен, если я бы никакого смысла спрашивать это, но у меня есть модель:Как получить значение ключа из массива, если данный строковое значение в качестве переменной в Codeigniter

function update_profile_image($id, $image, $data){ 
    $data1=array('profile_thumb'=> $data['images_urls'][$index]); 
    $this->db->where('property_ref_id',$id); 
    $this->db->update('vbc_property_images',$data1); 
} 

Здесь $ данных представляет собой массив:

Array 
(
[images_urls] => Array 
    (
     [0] => property_image_11.png 
     [1] => property_image_13.png 
     [2] => property_image_14.png 
    ) 

) 

И $ image в модели - это имя любого изображения в этом массиве, например 'Property_image_13.png.

Я пытаюсь сделать что-то, где я могу получить ключевое значение, например $ index ([0], [1] ..) на $ image, чтобы в моем запросе он автоматически определял, какое изображение было выбрано.

Пожалуйста, помогите.

ответ

2

Вы можете петлю на массиве, чтобы получить ключ изображение

foreach($data['images_urls'] as $key => $value) { 
    if($value == $image) { 
     $index = $key; 
     break; 
    } 
} 

Альтернативное решение заключается в использовании array_search()

$index = array_search($image, $data['images_urls']); 
+1

Спасибо @ CMPS .. Первый вариант работал нормально .. –

0

Если я правильно понял ваш вопрос, вы хотите найти $data для значения, определенного в $image, и вернуть ключ соответствующего элемента. Если да, то array_search - это то, что вам нужно.

$key = array_search($image, $data);

Описание из страницы руководства:

Отыскивает массив для заданного значения и возвращает соответствующий ключ в случае успешного

+0

Благодаря @rjdown ... Я попытался 'print_r ($ ключ);' .. ничего не эхо. В то время как имя изображения изображения $ image –

+0

Оно должно по крайней мере вернуть false, если совпадений не найдено. Попробуйте var_dump вместо print_r – rjdown

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