Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在foreach中向字符串添加值?_Php - Fatal编程技术网

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

Php 如何在foreach中向字符串添加值?,php,Php,我有一个包含大量信息的数组。我想提取一些信息: *一串 *到一个新数组 我试着这样做是为了一个字符串: $output; foreach ($response->data as $post){ $output = $output . $post->link; } echo $output; 但是foreach中的$output是未定义的 这是一个好的解决方案吗?在这种情况下,如何声明具有正确范围的变量?请尝试以下代码 $output = ''; foreach ($resp

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

*一串 *到一个新数组

我试着这样做是为了一个字符串:

$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;
.

请尝试此代码

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

或者您可以使用
join

$output = join('',$response->data);
或者您可以使用
join

$output = join('',$response->data);
试一试

试一试


出现错误是因为您没有在开头初始化
$output
变量

尝试
$output=“”取而代之

但另一方面,一个更优雅的解决方案是使用PHP内置的
infrade()
方法

手册:

你可以这样做:

$output = implode(" ", $response->data);

echo $output;

更新

如果要“内爆”关联阵列,linepogl对此问题的回答提供了一个很好的示例:


更新2

下面是一个更新的代码,它实际上处理了您问题的
->链接
部分:

$response_array = array();

foreach ($response->data as $post) {
    $response_array[] = $post->link;
}

$output = implode(" ", $response_array);

echo $output;

出现错误是因为您没有在开头初始化
$output
变量

尝试
$output=“”取而代之

但另一方面,一个更优雅的解决方案是使用PHP内置的
infrade()
方法

手册:

你可以这样做:

$output = implode(" ", $response->data);

echo $output;

更新

如果要“内爆”关联阵列,linepogl对此问题的回答提供了一个很好的示例:


更新2

下面是一个更新的代码,它实际上处理了您问题的
->链接
部分:

$response_array = array();

foreach ($response->data as $post) {
    $response_array[] = $post->link;
}

$output = implode(" ", $response_array);

echo $output;
试着

$output = '';
foreach ($response->data as $post){
    $output .= $post->link;
}
echo $output;
首先,您需要将$output值初始化为null,然后仅在foreach循环中将结果连接到$output。

尝试类似的操作

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


foreach( $output as $key => $value ){
    echo $value;
}
首先,您需要将$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;
对于您的代码,您可以执行以下操作:

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

echo $output;

foreach
中使用变量之前,必须先定义该变量。比如:

$output="";
而不是

$output;

foreach
中使用变量之前,必须先定义该变量。比如:

$output="";
而不是

$output;

您能给我们看一个您试图循环的数据样本吗?
$output=''
foreach
之前。您能给我们展示一下您试图循环使用的数据样本吗?
$output=''
在foreach之前
foreach
。这与OP目前所做的有何不同?@AmalMurali那是打字错误。。。哦,你很快就能做出判断……:)这与OP目前正在做的有什么不同?@AmalMurali这是打字错误。。。哦,你很快就能做出判断……:)如果其关联数组…?嗯,假设OP正在访问
$response->data
的每个元素的属性
$link
,您可能更应该使用一个匿名函数对
数组映射()的结果进行内爆,该函数返回
$link
属性;-)是的,哈夫洛克。很好。我已经更新了我的答案来处理那个病例。谢谢你的指点$response_array=[]为我提供了错误-->分析错误:语法错误,意外的“[”对不起,ViPiN--错误的RoR习惯。更正了该示例。使用
=array()
相反。如果它的关联数组…?嗯,假设OP正在访问
$response->data
的每个元素的属性
$link
,您可能更应该对
数组的结果进行内爆
使用匿名函数,该函数返回
$link
属性;-)是的,Havelock。要点很好。我已经更新了我的答案来处理这种情况。感谢指针!$response\u array=[]为我提供了错误-->解析错误:语法错误,意外的'['对不起,ViPiN--错误的错误习惯。更正了示例。使用
=array()