如何仅访问此 PHP 数组中的特定数组值
how do I access only specific array values in this PHP array
我从 Apples APNS 反馈服务得到这个 php 数组:
array(4) {
[0]=> string(64) "abc123"
[1]=> string(64) "def456"
[2]=> array(3) {
["timestamp"]=> int(1426717247) ["length"]=> int(32) ["devtoken"]=> string(64) "xyz987"
}
[3]=> array(3) {
["timestamp"]=> int(1426717247) ["length"]=> int(32) ["devtoken"]=> string(64) "xyz987"
}
}
如何使用 php 遍历此数组,并构建仅包含包含 'devtoken' 项/值的数组元素的逗号分隔字符串?
更新:我一直在尝试使用 implode 来做到这一点,这可能是可行的,但我最终使用的是基于史蒂夫的回答,如下所示:
$deldevidstring='';
foreach($feedback_tokens as $element){
if(is_array($element) && isset($element['devtoken'])){
$deldevidstring .= $element['devtoken'] .',' ;
}
}
if(strlen(trim($deldevidstring)) > 0){
echo trim("delete these... " . $deldevidstring, ',');
}
看看这个:
<?php
$str = "";
foreach($array as $arr)
{
if(is_array($arr))
{
if(array_key_exists('devtoken', $arr))
{
$str = implode(",", $arr)."\n";
}
}
}
?>
迭代数组并构建您的字符串:
$string='';
foreach($array as $element){
if(isset($element['devtoken'])){
$string .=',' . $element['devtoken'];
}
}
echo trim($string, ',');
或者内爆过滤后的数组:
$string = implode(',',
array_filter(
array_map(
function($element){
return $element['devtoken']
},
$array
)
)
);
假设你设置了 $records = 你得到的数组:
$string = '';
foreach ($records as $record) {
if (isset($array['devtoken'])) {
$string .= $array['devtoken'] . ', ';
}
}
$string = substr($string, 0, -2);
echo $string;
毫无疑问,有更优雅的方法可以做到这一点,但简而言之,这似乎可行。
无需循环。使用 PHP >= 5.5.0:
$result = implode(',', array_column($array, 'devtoken'));
对于没有array_column
的早期版本:
$result = implode(',', array_filter(array_map(function($v) { return $v['devtoken']; }, $array)));
我从 Apples APNS 反馈服务得到这个 php 数组:
array(4) {
[0]=> string(64) "abc123"
[1]=> string(64) "def456"
[2]=> array(3) {
["timestamp"]=> int(1426717247) ["length"]=> int(32) ["devtoken"]=> string(64) "xyz987"
}
[3]=> array(3) {
["timestamp"]=> int(1426717247) ["length"]=> int(32) ["devtoken"]=> string(64) "xyz987"
}
}
如何使用 php 遍历此数组,并构建仅包含包含 'devtoken' 项/值的数组元素的逗号分隔字符串?
更新:我一直在尝试使用 implode 来做到这一点,这可能是可行的,但我最终使用的是基于史蒂夫的回答,如下所示:
$deldevidstring='';
foreach($feedback_tokens as $element){
if(is_array($element) && isset($element['devtoken'])){
$deldevidstring .= $element['devtoken'] .',' ;
}
}
if(strlen(trim($deldevidstring)) > 0){
echo trim("delete these... " . $deldevidstring, ',');
}
看看这个:
<?php
$str = "";
foreach($array as $arr)
{
if(is_array($arr))
{
if(array_key_exists('devtoken', $arr))
{
$str = implode(",", $arr)."\n";
}
}
}
?>
迭代数组并构建您的字符串:
$string='';
foreach($array as $element){
if(isset($element['devtoken'])){
$string .=',' . $element['devtoken'];
}
}
echo trim($string, ',');
或者内爆过滤后的数组:
$string = implode(',',
array_filter(
array_map(
function($element){
return $element['devtoken']
},
$array
)
)
);
假设你设置了 $records = 你得到的数组:
$string = '';
foreach ($records as $record) {
if (isset($array['devtoken'])) {
$string .= $array['devtoken'] . ', ';
}
}
$string = substr($string, 0, -2);
echo $string;
毫无疑问,有更优雅的方法可以做到这一点,但简而言之,这似乎可行。
无需循环。使用 PHP >= 5.5.0:
$result = implode(',', array_column($array, 'devtoken'));
对于没有array_column
的早期版本:
$result = implode(',', array_filter(array_map(function($v) { return $v['devtoken']; }, $array)));