如何在foreach中为字符串添加值?

时间:2013-08-19 11:36:21

标签: php

我有一个包含大量信息的数组。我想提取一些信息:

*到一个字符串 *到新阵列

我尝试为字符串执行此操作:

$output;
foreach ($response->data as $post){
    $output = $output . $post->link;
}
echo $output;

但是foreach中的$ output是未定义的。

这是一个很好的解决方案吗?在这种情况下,如何声明具有正确范围的变量?

7 个答案:

答案 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;