[php] 다차원 배열에서 단일 열 반환
저는 PHP 초보자이고 다음 문제에 대한 빠른 해결책이 필요하지만 하나를 찾을 수 없습니다.
나는 다차원 배열을 가지고 있습니다.
Array
(
[0] => Array
(
[blogTags_id] => 1
[tag_name] => google
[inserted_on] => 2013-05-22 09:51:34
[inserted_by] => 2
)
[1] => Array
(
[blogTags_id] => 2
[tag_name] => technology
[inserted_on] => 2013-05-22 09:51:34
[inserted_by] => 2
)
)
를 사용하여 implode()
어떻게 든 tag_name
키 값을 포함하는 쉼표로 구분 된 문자열을 반환하고 싶습니다.
google, technology
상기 기능으로이 효과를 얻을 수 있습니까? 그렇지 않은 경우 대체 솔루션을 제안하십시오.
답변
아주 간단합니다.
$input = array(
array(
'tag_name' => 'google'
),
array(
'tag_name' => 'technology'
)
);
echo implode(', ', array_map(function ($entry) {
return $entry['tag_name'];
}, $input));
그리고 php v5.5.0의 새로운 기능 array_column
:
echo implode(', ', array_column($input, 'tag_name'));
답변
이 질문은 문자열 변환과 관련이 있지만 로그 파일에 배열을 작성하는 쉬운 방법을 원하면서 이것을 우연히 발견했습니다. 정보 만 원하고 문자열의 정확한 청결도에 신경 쓰지 않는다면 다음을 고려할 수 있습니다.
json_encode($array)
답변
array_map
전달 된 배열로 재생할 수있는 콜백 함수입니다. 작동합니다.
$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
답변
join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array))
답변
아주 간단하게
$str;
foreach ($arrays as $arr) {
$str .= $arr["tag_name"] . ",";
}
$str = trim($str, ',');//removes the final comma
답변
연관된 “blogTags_id”와 함께 “tag_name”을 사용하려면 다음을 사용하십시오. (PHP> 5.5)
$blogDatas = array_column($your_multi_dim_array, 'tag_name', 'blogTags_id');
echo implode(', ', array_map(function ($k, $v) { return "$k: $v"; }, array_keys($blogDatas), array_values($blogDatas)));
답변
이 상황에서 implode ($ array, ‘,’); 값만 원하기 때문에 작동합니다. 나를 위해 일하는 PHP 5.6에서.
다음과 같이 키와 값을
내포하려면 blogTags_id : 1
tag_name : google
$toImplode=array();
foreach($array as $key => $value) {
$toImplode[]= "$key: $value".'<br>';
}
$imploded=implode('',$toImplode);
죄송합니다. 제목이 “다차원 배열의 데이터 삽입”이므로 잘못 이해했습니다. 글쎄, 내 대답은 여전히 어떻게 든 대답하고 누군가를 도울 수 있으므로 삭제하지 않을 것입니다.