我有一个包含大量信息的数组。我想提取一些信息:
*到一个字符串 *到新阵列
我尝试为字符串执行此操作:
$output;
foreach ($response->data as $post){
$output = $output . $post->link;
}
echo $output;
但是foreach中的$ output是未定义的。
这是一个很好的解决方案吗?在这种情况下,如何声明具有正确范围的变量?
答案 0 :(得分:6)
出现错误是因为您未在开头初始化$output
变量。
请尝试$output = "";
。
但另一方面,更优雅的解决方案是使用PHP的内置implode()
方法。
手册: http://php.net/manual/en/function.implode.php
你可以这样做:
$output = implode(" ", $response->data);
echo $output;
<强>更新强>
如果你想破坏&#39;关联数组, linepogl 对这个问题的回答提供了一个很好的例子:Imploding an associative array in PHP
更新2
这是一个实际处理问题的->link
部分的更新代码:
$response_array = array();
foreach ($response->data as $post) {
$response_array[] = $post->link;
}
$output = implode(" ", $response_array);
echo $output;
答案 1 :(得分:0)
试试这段代码
$output = '';
foreach ($response->data as $post){
$output = $output . $post->link;
}
echo $output;
答案 2 :(得分:0)
$output = '';
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;
或者您可以使用join
$output = join('',$response->data);
答案 3 :(得分:0)
尝试
$output = '';
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;
答案 4 :(得分:0)
尝试
$output = '';
foreach ($response->data as $post){
$output .= $post->link;
}
echo $output;
首先,您需要将$ output值初始化为null,然后在foreach循环中将结果初始化为$ output。
答案 5 :(得分:0)
$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;
答案 6 :(得分:0)
在foreach
中使用变量之前,必须先定义变量。像:
$output="";
而不是
$output;