【问题标题】:How to convert an array of number base 10 to base 16 use array_map and intval?如何使用array_map和intval将一个以10为底的数组转换为以16为底的数组?
【发布时间】:2018-10-05 17:14:19
【问题描述】:

我尝试使用intval 将数字数组转换为以 16 为底的数组,并且我想学习如何将第二个参数传递给间隔,默认情况下 intval 使用以 10 为底的。

array_map('intval', [1, 2, "12", "15" , "99"]);

在我在谷歌搜索并阅读php.net文档但无法解决此问题之前。

【问题讨论】:

    标签: php callback callable array-map


    【解决方案1】:

    您可以定义自己的匿名函数:

    array_map(function ($value) { return intval($value, 16); }, [1, 2, "12", "15", "99"]);
    

    演示:https://3v4l.org/PoFZN

    【讨论】:

    • 感谢 Jeto 解决了use 发送更多参数的问题 $base = 16; array_map(function($value) use ($base) { return intval($value, $base); }, [1, 2, "12", "15", "99"])
    • @Jeto 我认为这是不正确的,这不是将值视为已经在 base 16 中吗?将 intval 更改为 base_convert 即可。
    • @msg “已经在 16 进制中”是什么意思?这只是获取数组中每个项目的整数值,使用基数 16。除非我不明白这个问题。
    • @AliYousefi 他想 base 10 to base 16。intval返回一个以10为底的数字。
    • @msg 你是对的,这是错误的措辞。如果他确实想转换,那么base_convert 听起来是对的,但从他的开篇文章来看,他只是想要一种将第二个参数传递给intval 的方法,因此得到了这个答案。
    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2022-12-07
    • 2012-06-20
    • 1970-01-01
    • 2018-08-19
    相关资源
    最近更新 更多