我有一个包含大量信息的数组。我想提取一些信息:
*到一个字符串 *到一个新数组
我尝试为字符串执行此操作:
$output;
foreach ($response->data as $post){
$output = $output . $post->link;
}
echo $output;
但是 foreach 中的 $output 是未定义的。
这是一个好的解决方案吗?在那种情况下,我如何声明具有正确范围的变量?
我有一个包含大量信息的数组。我想提取一些信息:
*到一个字符串 *到一个新数组
我尝试为字符串执行此操作:
$output;
foreach ($response->data as $post){
$output = $output . $post->link;
}
echo $output;
但是 foreach 中的 $output 是未定义的。
这是一个好的解决方案吗?在那种情况下,我如何声明具有正确范围的变量?
出现您的错误是因为您没有$output
在开始时初始化变量。
试试$output = "";
吧。
但另一方面,更优雅的解决方案是使用 PHP 的内置implode()
方法。
手册: http: //php.net/manual/en/function.implode.php
你可以这样做:
$output = implode(" ", $response->data);
echo $output;
更新
如果你想“内爆”关联数组,linepogl对这个问题的回答提供了一个很好的例子:在 PHP 中内爆关联数组
更新 2
这是一个实际处理->link
您问题的一部分的更新代码:
$response_array = array();
foreach ($response->data as $post) {
$response_array[] = $post->link;
}
$output = implode(" ", $response_array);
echo $output;
您必须先定义变量,然后才能在 中使用它foreach
。喜欢:
$output="";
代替
$output;
试试这个代码
$output = '';
foreach ($response->data as $post){
$output = $output . $post->link;
}
echo $output;
.
$output = '';
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;
或者你可以使用join
$output = join('',$response->data);
尝试
$output = '';
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;
试试喜欢
$output = '';
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;
首先,您需要将 $output 值初始化为 null 然后仅在 foreach 循环中将结果连接到 $output。
$output = array();
foreach ($response->data as $post){
$output[] = $post->link;
}
foreach( $output as $key => $value ){
echo $value;
}
对于您的代码,您可能会这样做:
$output = NULL;
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;