2017-12-20 15 views
1

연관 배열에 데이터를 추가하려는 코드를 작성했습니다. array_push를 사용하고 싶었지만 커뮤니티에이 연습을 요청해야한다고 생각했습니다. 나는 이것을 올바른 방법으로하고 있는가? 달성하고자하는 것은 for 루프의 각 인덱스에 대한 데이터가 배열에 추가되어야한다는 것입니다.하지만 여기서는 생각할 때마다 새 인스턴스가 생성됩니다. 옵션은 배열이며 id_option과 name은 데이터를 찾을 때와 같이 배열의 각 색인에 있어야합니다 ($options[0]['id_option']이어야 함).루프 용 연관 배열

$options = array(); 

for ($mn = 0; $mn < sizeof($pages); $mn++) 
{ 
    $options[$mn] = array(); 
    $options[$mn]['id_option'] = $pages[$mn]['meta_title']; 
    $options[$mn]['name'] = $pages_links[$mn]['link']; 
} 
+1

'$ options = array ('$ options [] = array ('? – Eric

+0

) 줄을 변경하는 방법은 무엇입니까? – Shahab

답변

2
:
$options = array(
    for ($mn = 0; $mn < sizeof($pages); $mn++) { 
     array(
      'id_option' => $pages[$mn]['meta_title'], 
      'name' => $pages_links[$mn]['link'], 
     ) 
    } 
); 
+0

이것은 제가 원했던 것입니다. 고마워요. – Shahab

0

당신이 원하는 : 그건 단지 이론적 인 목적이다 (
for ($mn = 0; $mn < sizeof($pages); $mn++) { 
    $options = array(
     array(
      'id_option' => $pages[$mn]['meta_title'], 
      'name' => $pages_links[$mn]['link'], 
     ) 
    ); 
} 

나는 또한이 방법을 시도했지만이 아래의 하나에, 구문 오류가 작동하지 않습니다
$options = array();//init the array options 

for ($mn = 0; $mn < sizeof($pages); $mn++) { 
    $options[] = array(
     'id_option' => $pages[$mn]['meta_title'], 
     'name' => $pages_links[$mn]['link'], 
    ); 
} 

print_r($options); 

$ 옵션 변수 뒤의 괄호에주의하십시오. PHP가 배열에 값을 추가하도록 지시합니다 $ options

+1

$ options.push, 자바 스크립트 – Cedric

+3

Omg, 맞아요. 지금은 고칠 것입니다. – Ivan86

1

덮어 쓰지 않고 추가하고 싶으므로 $options[] = x을 사용하십시오.

좋은 연습은 루프 위의 빈 배열을 정의하는 것이므로 코드의 다른 부분에서 정의되지 않은 var 대신 적어도 (비어 있거나없는) 배열을 사용할 수 있습니다.

// define $options as an array 
$options = []; 

// add array with data to $options array 
for ($mn = 0; $mn < sizeof($pages); $mn++) { 
    $options[] = [ 
     'id_option' => $pages[$mn]['meta_title'], 
     'name' => $pages_links[$mn]['link'], 
    ]; 
} 

또한 두 번째 중첩 배열을 제거했습니다.

+0

나는 이것을 시도했습니다.그것은 작동하지만 내가 선택한 코드는 내 코드에 가깝습니다. +1 : D – Shahab

0

두 번째 코드는 작동하지 않습니다. 그러나 첫 번째 코드를 약간 변경하여 작동시킬 수 있습니다.

$options = []; // defines the array 
for ($mn = 0; $mn < sizeof($pages); $mn++) { 
    $options[] = array(
      'id_option' => $pages[$mn]['meta_title'], 
      'name' => $pages_links[$mn]['link'], 
    ); 
} 
  • $를 옵션 = [] 그런 다음 for 루프가 데이터를 통해 루프 배열
  • 을 정의합니다.
  • 루프가 실행될 때마다 PHP는 array() 함수를 사용하여 새로운 연관 배열을 만들고이를 $ options 배열에 새 요소로 추가합니다.
  • 마지막으로 다차원 배열을 얻습니다. ($ options)

감사합니다.

0

위에서 수행 한 작업은 매번 옵션 배열을 덮어 씁니다.

100 % 당신이 일을하려고하지만,이 같은 시도하는 것을 확인하십시오 여부,

$options = array(); 

for ($mn = 0; $mn < sizeof($pages); $mn++) { 
    $key = $pages[$mn]['meta_title']; 
    $value = $pages_links[$mn]['link']; 
    $options[$key] = $value; 
} 

var_dump($options); 

내가 원래 데이터가 어떻게 생겼는지 알 수 없기 때문에, 그것을 테스트하기 조금 어렵다를 이 작동합니다.

는 도움이되기를 바랍니다.