如果我知道搜索这些条目的正确条款很容易谷歌,但我不确定术语。
我有一个返回大对象的API。我通过以下方式访问了一个特定的:
$bug->fields->customfield_10205[0]->name;
//result is johndoe@gmail.com
有很多值,我可以通过将它从0更改为1来访问它们,依此类推
但我想循环遍历数组(也许这不是正确的术语)并获取所有电子邮件并将其添加到这样的字符串中:
implode(',', $array);
//This is private code so not worried too much about escaping
本来以为我会做的事情如下: echo implode(',',$ bug-> fields-> customfield_10205-> name);
也试过了 echo implode(',',$ bug-> fields-> customfield_10205);
和 echo implode(',',$ bug-> fields-> customfield_10205 [] - > name);
我正在寻找的输出是: '输入johndoe @ gmail.com,marydoe @ gmail.com,patdoe @ gmail.com'
我哪里出错了,我为这个愚蠢的问题提前道歉,这可能是新手
答案 0 :(得分:2)
您需要迭代,例如
# an array to store all the name attribute
$names = array();
foreach ($bug->fields->customfield_10205 as $idx=>$obj)
{
$names[] = $obj->name;
}
# then format it to whatever format your like
$str_names = implode(',', $names);
PS:您应该查找属性电子邮件而不是名称,但是,我只是按照您的代码
答案 1 :(得分:0)
使用此代码,并遍历数组。
$arr = array();
for($i = 0; $i < count($bug->fields->customfield_10205); $i++)
{
$arr[] = $bug->fields->customfield_10205[$i]->name;
}
$arr = implode(','$arr);
答案 2 :(得分:0)
如果不使用额外的循环和临时列表,这在PHP中是不可能的:
$names = array();
foreach($bug->fields->customfield_10205 as $v)
{
$names[] = $v->name;
}
implode(',', $names);
答案 3 :(得分:0)
您可以使用array_map
这样的功能
function map($item)
{
return $item->fields->customfield_10205[0]->name;
}
implode(',', array_map("map", $bugs)); // the $bugs is the original array