0

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

*到一个字符串 *到一个新数组

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

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

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

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

4

7 回答 7

6

出现您的错误是因为您没有$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;
于 2013-08-19T11:38:53.623 回答
0

您必须先定义变量,然后才能在 中使用它foreach。喜欢:

$output="";

代替

$output;
于 2013-08-19T11:54:23.813 回答
0

试试这个代码

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

.

于 2013-08-19T11:37:59.473 回答
0
$output = '';
foreach ($response->data as $post){
    $output .= $post->link;
}
echo $output;

或者你可以使用join

$output = join('',$response->data);
于 2013-08-19T11:38:07.597 回答
0

尝试

$output = '';
foreach ($response->data as $post){
    $output .= $post->link;
}
echo $output;
于 2013-08-19T11:38:41.573 回答
0

试试喜欢

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

首先,您需要将 $output 值初始化为 null 然后仅在 foreach 循环中将结果连接到 $output。

于 2013-08-19T11:39:01.980 回答
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;
于 2013-08-19T11:45:03.313 回答