我已经定义了多维数组$binary
:
$binary = [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]];
我想创建一个函数来显示此数组中的二进制数。
count($binary)
应该确定数字中的位数,在这种情况下为6。
我的目标是使函数显示(在这种情况下为六位数)二进制数字的所有可能的变体:
100000, 110000, 101000, 1001000 etc.
我唯一的想法是创建一系列嵌套在一起的foreach循环:
foreach ($binary[0] as $digit) {
foreach ($binary[1] as $digit) {
etc.
}
}
但是$ binary中的数组数量可能会增加,因此您必须手动调整它,这不是我想要的。
有人知道如何编程这样的功能吗?
答案 0 :(得分:0)
我觉得类似该函数的通用类将很好地工作:
$length = 6;
function rangeToBase($_maxLength, $_start = 0, $_base = 2)
{
$max = pow($_base, $_maxLength + 1) - 1;
$range = range($_start, $max);
if($_base != 10) {
array_walk($range, function (&$item) use ($_base, $_maxLength) {
$item = str_pad( base_convert($item, 10, $_base), $_maxLength, '0', STR_PAD_LEFT );
});
}
return $range;
}
echo implode(' ', rangeToBase($length));
参数为:
我使用str_pad在您的字符串中显示零。该函数返回一个字符串数组,您可以使用implode()进行回显。