在 php 中将变量转储到单个变量



假设我有一个这样的函数:

foreach ($links as $link) {
var_dump($link->nodeValue);}

输出如下所示:

字符串(59( "我"不"害怕" 字符串(32( "拿着我的啤酒!" 字符串(60( "Üöä 可能的第4集" 字符串(43(

所以现在我想要 string(( 后面的文本,所以我有这样的:

echo $first; // I was "not" scared  
echo $second; // Hold my beer!  
echo $third; // I hate strings3000

我能想到的唯一方法是使用 ob_start(( 获取var_dump;而 substr 不知何故...

(如果你在>= 7.0(以下应该适合你:

$links = [
    (object)['nodeValue' => 'i was "not" scared'],
    (object)['nodeValue' => 'hold my beer'],
]; // just as an input example
list($first, $second) = array_column($links, 'nodeValue');

如果在 <7.0 上array_column无法提取对象的属性,因此您必须自己收集它,例如:

$values = array_map(function($node) {return $node->nodeValue;}, $links);
list($first, $second) = $values;

如果我正确理解了这个问题,你可以做一个类似于这个的简单函数:

function dumper($array){
foreach($array as $value){
    foreach($value as $x){
        echo gettype($x)."(".strlen($x).")". "n";
        echo $x. "n";
    }
}
}

然后:

  $array = [
    (object)['nodeValue' => 'sadasdadasd'],
    (object)['nodeValue' => 'asdasdasdasdasd'],
    (object)['nodeValue' => 'sadasdadasd'],
    (object)['nodeValue' => 'asdasdasdasdasd'],
]; 
dumper($array);

输出:

string(11)
sadasdadasd
string(15)
asdasdasdasdasd
string(11)
sadasdadasd
string(15)
asdasdasdasdasd

最新更新