假设我有一个这样的函数:
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