2015-01-20 4 views
2

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

Ключи 7,8,9,10 и «размер», «atime», «mtime», «ctime» из массива, возвращаемого функцией stat().

function returnDataByKeys($keys,$array){ 

    $tmp = array(); 
    foreach($keys as $keyValue) 
     $tmp[$keyValue] = $array[$keyValue]; 

    return $tmp; 
} 

Что касается моего вопроса, я ищу более array_ * функция способом извлечения желательных ключей & значения в блоке с ключами сохраняются.

Со всеми остальными array_* функциями, которые я видел, я не вижу того, что позволяет вам вводить ключевые данные и возвращать только те ключи, если они находятся в массиве.

ответ

4

Если я понимающего ваш вопрос правильно, это так просто, как это:

array_intersect_key($array, array_flip(array('size', 'atime', ..))) 

http://php.net/array_intersect_key

+0

Спасибо за Ваш ответ, красиво сделано, я был смущен, почему array_flip был использован, поэтому я экспериментировал, все еще не уверен, почему он работает так, как будто. Спасибо. –

+1

'array_flip' избавляет вас от необходимости вводить' array ('foo' => null, ..) '. Значения, которые вы хотите фильтровать, должны быть ключами. – deceze

+0

Жаль, что для этого нет встроенного для всех других менее полезных функций. –

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