2013-11-26 2 views
0

I는 다음과 같습니다 내 PHP 코드의 배열을 가지고 :PHP 배열에서 특정 요소 가져 오기?

Array 
(
[1] => Array 
    (
     [subject_id] => 1 
     [subject] => Math 
     [default_selection] => 1 
    ) 

[2] => Array 
    (
     [subject_id] => 2 
     [subject] => Physics 
     [default_selection] => 0 
    ) 

[3] => Array 
    (
     [subject_id] => 3 
     [subject] => Chemistry 
     [default_selection] => 0 
    ) 

[4] => Array 
    (
     [subject_id] => 4 
     [subject] => Biology 
     [default_selection] => 0 
    ) 

[5] => Array 
    (
     [subject_id] => 5 
     [subject] => Statistics 
     [default_selection] => 0 
    ) 

) 

내가의 값을 좀하고 싶습니다 [대상] 여기서 [subject_id] = 2에서이 작업을 수행하는 직접적인/바로 가기가 있습니까 PHP 또는 foreach 루프를 실행해야합니까? 동일한 데이터를 한 번만이 작업을 수행해야하는 경우

답변

2

는, 단순히 foreach 루프를 실행

<?php 
    $foundArray = null; 

    foreach ($array as $subArray) { 
     if ($subArray['subject_id'] == 2) { 
      $foundArray = $subArray; 
      break; 
     } 
    } 

    var_dump($foundArray); 
?> 

당신이 (같은 요청에서) 같은 데이터 subject_id 'SA 많이 확인해야하는 경우, 당신은 subject_id와 키를 연결하고 여기에 그런 식으로 참조 할 수 있습니다 :

<?php 
    $assoc = array(); 

    foreach ($array as $subArray) { 
     $assoc[$subArray['subject_id']] = $subArray; 
    } 

    var_dump($assoc[2]); 
    var_dump($assoc[3]); 
    var_dump($assoc[4]); 
?> 
0

당신은 올바른 요소 선택 array_filter를 사용할 수 있습니다

<?php 
    function getSecondSubject($element){ 
     return $element["subject_id"] == 2; 
    } 

    $only_subject_two = array_filter($all_subjects, "getSecondSubject"); 

    $subject = $only_subject_two["subject"]; 
?> 

당신은 어떤 trickiness을 사용할 수 있습니다 (변수처럼) subject_id을 만들 수 있습니다. 필요한 경우 변수를 찾습니다.

1

새로운 PHP 5.5에서 아마 당신이 (foreach()를 사용하지 않고 즉, 검색)을 요구하는지 acheive 것 array_column() 기능입니다 : 아직 PHP 5.5에없는 경우

$searchForSubjectID = 2; 
$index = array_search($searchForSubjectID, array_column($data, 'subject_id')); 
$subject = $data[$index]['subject']; 

print $subject; //prints 'Physics' 

,이 a compatibility library for this function.