program tip

PHP에서 배열 요소를 문자열로 캐스팅하는 방법은 무엇입니까?

radiobox 2020. 11. 1. 17:32
반응형

PHP에서 배열 요소를 문자열로 캐스팅하는 방법은 무엇입니까?


객체가있는 배열이있는 경우 :

$a = array($objA, $objB);

(각 객체에는 __toString()-method가 있습니다)

배열 $a이 더 이상 객체가 아니라 문자열 표현을 포함 하도록 모든 배열 요소를 문자열로 캐스팅하려면 어떻게 해야합니까? 한 줄짜리가 있습니까? 아니면 배열을 수동으로 반복해야합니까?


한 줄짜리 :

$a = array_map('strval', $a);
// strval is a callback function

PHP 문서 참조 :

배열 _ 맵

strval

즐겨! ;)


테스트되지 않았지만 이와 같은 작업을 수행해야합니까?

foreach($a as $key => $value) {
    $new_arr[$key]=$value->__toString();
}
$a=$new_arr;

당신은 implode 를 찾고 계십니까 ?

$array = array('lastname', 'email', 'phone');

$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

지금은 테스트 할 수 없지만 implode()이러한 어레이를 사용 하면 어떻게되는지 확인할 수 있습니까? _toString 호출 해야 합니다.


Alix Axel이 가장 좋은 대답입니다. 또한 array_map을 사용하여 배열에 무엇이든 적용 할 수 있습니다.

//All your objects to string.
$a = array_map(function($o){return (string)$o;}, $a);
//All your objects to string with exclamation marks!!!
$a = array_map(function($o){return (string)$o."!!!";}, $a);

즐겨


다음을 할 수없는 이유가 있습니까?

$a = array(
    (string) $objA,
    (string) $objB,
);

참고 URL : https://stackoverflow.com/questions/2131462/how-to-cast-array-elements-to-strings-in-php

반응형