2015-10-28 3 views
0

Я получил этот массив:Проблема получения данных из массива в PHP

array(1) { 
    ["sensory-evaluation"]=> array(6) { 
    ["name"]=> string(18) "Sensory Evaluation" 
    ["value"]=> string(43) "10/22/2015 at 6:00pm | 11/25/2015 at 6:00pm" 
    ["position"]=> string(1) "3" 
    ["is_visible"]=> int(1) 
    ["is_variation"]=> int(1) 
    ["is_taxonomy"]=> int(0) 
    } 
} 

Мне нужно, чтобы иметь возможность получить данные от ["value"]. Если я сделаю $arr["sensory-evaluation"]["value"], я могу получить его, но проблема ["sensory-evaluation"] будет отличаться для каждого элемента в моем массиве, поэтому мне нужен способ абстрагировать эту часть, но я не смог ее понять.

+0

Этот вопрос имеет проблему форматирования. Пожалуйста, отформатируйте исходный код для удобства чтения? – motoku

+0

Можете ли вы привести пример массива, который отличается от приведенного вами примера? – Machavity

ответ

1

Если у вас есть только один элемент в массиве, как вы показываете то:

echo current($arr)['value']; 

Если вы не знаете, если она существует:

if(isset(current($arr)['value'])) { 
    echo current($arr)['value']; 
} 

Вы также можете сделать:

echo array_values($arr)[0]['value']; 
0

почему бы не использовать для каждого

function getValue($arr){ 
    foreach ($arr as $key => $value) { 
     var $subArray=$arr[$key]; 
     if(array_key_exists ('value' ,$subArray)) 
     return $arr[$key]['value']; 
    } 
} 
+0

Это было близко, но это вызывало ошибку. Кажется, это работает. 'Функция GetValue ($ обр) { \t Еогеасп ($ обр как $ ключ => $ значение) { \t, если (array_key_exists ($ ключ, $ обр)) \t возврата $ обр [$ ключ] [ 'значение «]; \t} \t} ' – timT

+0

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

+0

. Измените свой ответ и измените его. Затем удалите комментарий. –