","로 배열을 함정

2020-02-22 php json api proxmox

Proxmox API를 호출하여 각 노드에서 vm의 이름을 가져옵니다. 이 코드 부분은 잘 작동합니다 (이 게시물 끝 부분에서 코드의 전체 부분).

foreach ($arrays['data'] as $array) {
    echo $array['name'];
}

echo : vm1vm2vm3.

그러나이 결과를 쉼표로 구분하여 vm1, vm2, vm3.

나는 시도했다 :

foreach ($arrays['data'] as $array) {
    echo implode(',', $array['name']);
}

그러나 오류 : "Warning: implode(): Invalid arguments passed in"

그래서 나는 시도했다 :

foreach ($arrays['data'] as $array) {
    echo implode(',', (array)$array['name']);
}

오류는 없지만 쉼표는 없습니다. 간단한 "echo $ array [ 'name'];"과 동일한 결과

그리고 마지막으로 시도했습니다 :

 foreach ($arrays['data'] as $array) { $vmNameWithComma[] = $array['name']; echo implode(',', $vmNameWithComma); } 
 foreach ($arrays['data'] as $array) { $vmNameWithComma[] = $array['name']; echo implode(',', $vmNameWithComma); } 
 foreach ($arrays['data'] as $array) { $vmNameWithComma[] = $array['name']; echo implode(',', $vmNameWithComma); } 
 foreach ($arrays['data'] as $array) { $vmNameWithComma[] = $array['name']; echo implode(',', $vmNameWithComma); } 
 

vm1vm1,vm2vm1,vm2,vm3. 을 반환합니다 vm1vm1,vm2vm1,vm2,vm3.

어떤 아이디어?


foreach ($arrays['data'] as $array) {
    $vmNameWithComma[] = $array['name'];
    echo implode(',', $vmNameWithComma);
}

Answers

foreach 루프가 필요하지 않습니다.

name 열만 배열로 배열 한 다음 implode() 를 호출해야합니다.

$names = array_column($arrays['data'], 'name');
echo implode(',', $names);

Related