php数组内爆
我有这个阵列:php数组内爆,php,arrays,implode,Php,Arrays,Implode,我有这个阵列: array (size=5) 35 => string '3' (length=1) 24 => string '6' (length=1) 72 => string '1' (length=1) 16 => string '5' (length=1) 81 => string '2' (length=1) 我想内爆id以获得: $str = '35-3|24-6|72-1|16-5|81-2'; 如何以简单的方式获得它 谢谢
array (size=5)
35 => string '3' (length=1)
24 => string '6' (length=1)
72 => string '1' (length=1)
16 => string '5' (length=1)
81 => string '2' (length=1)
我想内爆id以获得:
$str = '35-3|24-6|72-1|16-5|81-2';
如何以简单的方式获得它
谢谢。你不能使用内爆来实现这一点,请参见下面@havelock的答案,但是使用循环或其他形式的迭代会更容易
$str = "";
foreach ($array as $key => $value) {
$str .= $key . "-" . $value . "|";
}
$str = substr(0, strlen($str)-1);
使用内爆无法做到这一点,请参见下面@havelock的答案,但是使用循环或其他形式的迭代会更容易
$str = "";
foreach ($array as $key => $value) {
$str .= $key . "-" . $value . "|";
}
$str = substr(0, strlen($str)-1);
我还没有测试过这个,但它应该是非常直接的
foreach($array as $key=>$item){
$new_arr[] = $key."-".$item;
}
$str = implode('|', $new_arr);
我还没有测试过这个,但它应该是非常直接的
foreach($array as $key=>$item){
$new_arr[] = $key."-".$item;
}
$str = implode('|', $new_arr);
一种可能是这样的
function mapKeyVal($k, $v) {
return $k . '-' . $v;
}
echo implode('|', array_map('mapKeyVal',
array_keys($arry),
array_values($arry)
)
);
一种可能是这样的
function mapKeyVal($k, $v) {
return $k . '-' . $v;
}
echo implode('|', array_map('mapKeyVal',
array_keys($arry),
array_values($arry)
)
);
解决方案
您可以在使用自定义关联映射函数时,通过连接字符串干净地完成此操作,该函数如下所示:
函数数组\u映射\u关联($callback,$array){
$result=array();
foreach($key=>$value的数组){
$result[]=call_user_func($callback,$key,$value);
}
返回$result;
}
完整示例和测试
使用它的完整解决方案可能如下所示:
解决方案
您可以在使用自定义关联映射函数时,通过连接字符串干净地完成此操作,该函数如下所示:
函数数组\u映射\u关联($callback,$array){
$result=array();
foreach($key=>$value的数组){
$result[]=call_user_func($callback,$key,$value);
}
返回$result;
}
完整示例和测试
使用它的完整解决方案可能如下所示:
当你说如何以简单的方式获得它时?
你的意思是没有循环正确吗?当你说如何以简单的方式获得它时?
你的意思是没有循环正确吗?你也可以使用rtrim()删除最后一个“|”,我坚持你也可以使用内爆()
作为解决方案的一部分。。。查看我的答案:-)如果他想查看其他选项,他可以查看页面的滚动条,我不需要在我的答案中列出它们。你也可以使用rtrim()删除最后一个“|”,我坚持认为你也可以使用内爆()
作为解决方案的一部分。。。查看我的答案:-)如果他想查看其他选项,他可以查看页面的滚动条,我不需要在我的答案中列出它们。+1别忘了你可以实现匿名功能!是的,我认为这会让它变得“更容易理解”:-)匿名函数($l,$r){返回“$l-$r”;}
。谢谢@Gremo,正如我上面所说的,考虑到这个问题,我想让答案不要“太复杂”:-@Havelock:这个解决方案很有效,回调可以是匿名函数,有许多主机支持早于5.3的PHP(因此没有任何同名函数)。请参阅我的答案,了解更一般的选择。+1不要忘记,您可以实现匿名函数!是的,我认为这会让它变得“更容易理解”:-)匿名函数($l,$r){返回“$l-$r”;}
。谢谢@Gremo,正如我上面所说的,考虑到这个问题,我想让答案不要“太复杂”:-@Havelock:这个解决方案很有效,回调可以是匿名函数,有许多主机支持早于5.3的PHP(因此没有任何同名函数)。请参阅我的答案,了解更一般的选择。