2014-04-05 4 views
0

연상 배열을 통해 반복 작업을 수행하는 것 외에도 값을 새 배열로 푸시하고 나머지 필드의 배열과 동일하게 설정하는 것은 PHP에 내장 된 배열 함수입니다. 이런 식으로 할거야?인덱스로 PHP 다차원 배열 값

그렇다면 무엇입니까?

내가 변화 될 것이다 다음

이런 일에
Array 
(
    [0] => Array 
     (
      [0] => TEST //Name (Database column name 
      [1] => 12430 //ID (Database column name 
      [2] => Y  //Save (Database column name 
      [3] => 100 //Wert (Database column name 
     ) 

:

Array 
(
    [12430] => Array 
      (
       [Name] => TEST 
       [Save] => Y 
       [Wert] => 100 
      ) 

내가하는 동안 루프와 함께 작동 :

.... 
while($row = mysql_fetch_assoc($ergebnis)) { 
.... 
} 
+0

도움이 될 것입니다. http://stackoverflow.com/a/240676/2706988 –

+1

첫 번째 배열은 실제로 fetch_assoc이 제공하는 것이 아닙니다. 오히려 열 이름이 키이고 열 내용이 값입니다. 그래서 어쨌든 거의 이미 존재합니다 ... 나머지는 id 배열을 외부 배열의 인덱스로 가져 와서 fetch_assoc의 결과를 할당하는 것입니다. 그리고 생각한다면 하위 배열에서 id 키를 설정 해제하는 것이 좋습니다. 거의 리던던시가 실제로 어떤 해를 끼치 지 않습니다. – CBroe

답변

0

내가 생각하는 당신이려고하고있다 배열을 반복해야합니다. here 함수가있을 수 있습니다 약 줄에 의해 코드를 단축 할 수 있지만 코드의 가독성과 효율성에 눈에 띄는 차이를 만들 것입니다. 그래서 나는 당신이 아주 짧고 단순하다면 배열을 반복 할 것입니다. mysql_로 기능이 PHP에서 사용되지 않으며 당신이보다 안정적이고 안전으로, 대신 mysqli_ 또는 PDO를 사용해야한다는

$new_array = array(); 
while($row = mysql_fetch_assoc($ergebnis)) { 
    $new_array[$row[1]] = $row; 
    unset($new_array[$row[1]]); 
} 

.

또한 @CBroe가 말했듯이 mysql_fetch_assoc 함수는 원하는 결과의 두 번째 부분을 이미 반환합니다. PDO에 해당하는 것은 $query->fetch(PDO::FETCH_ASSOC);

행운을 빕니다!

+0

감사합니다 ... 완벽하게 작동합니다. – Marco

0

쿼리를 변경하고 끝에 GROUP BY ID을 추가하십시오.