Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP value=arraykey+;arraykey+;阿雷基_Php_Arrays_Loops_For Loop_Multidimensional Array - Fatal编程技术网

PHP value=arraykey+;arraykey+;阿雷基

PHP value=arraykey+;arraykey+;阿雷基,php,arrays,loops,for-loop,multidimensional-array,Php,Arrays,Loops,For Loop,Multidimensional Array,我有3个数组 阵列1: Array ( [0] => 0 [1] => 256 [2] => 512 [3] => 768 [4] => 1024 [5] => 1280 [6] => 1536 [7] => 1792 [8] => 2048 [9] => 2304 [10] => 2560 [11] => 2816 [12] => 3072 [13] => 3328 [14] => 3584 [15]

我有3个数组

阵列1:

 Array ( [0] => 0 [1] => 256 [2] => 512 [3] => 768 [4] => 1024 [5] => 1280 [6] => 1536 [7] => 1792 [8] => 2048 [9] => 2304 [10] => 2560 [11] => 2816 [12] => 3072 [13] => 3328 [14] => 3584 [15] => 3840 [16] => 4096 [17] => 4352 [18] => 4608 [19] => 4864 [20] => 5120 [21] => 5376 [22] => 5632 [23] => 5888 )
阵列2:

Array ( [0] => 0 [1] => 65536 [2] => 131072 [3] => 196608 [4] => 262144 [5] => 327680 [6] => 393216 [7] => 458752 [8] => 524288 [9] => 589824 [10] => 655360 [11] => 720896 [12] => 786432 [13] => 851968 [14] => 917504 [15] => 983040 [16] => 1048576 [17] => 1114112 [18] => 1179648 [19] => 1245184 [20] => 1310720 [21] => 1376256 [22] => 1441792 [23] => 1507328 [24] => 1572864 [25] => 1638400 [26] => 1703936 [27] => 1769472 [28] => 1835008 [29] => 1900544 [30] => 1966080 [31] => 2031616 )
阵列3:

Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 [11] => 11 [12] => 12 [13] => 13 [14] => 14 [15] => 15 [16] => 16 [17] => 17 [18] => 18 [19] => 19 [20] => 20 [21] => 21 [22] => 22 [23] => 23 [24] => 24 [25] => 25 [26] => 26 [27] => 27 [28] => 28 [29] => 29 [30] => 30 [31] => 31 )
给定一个我知道被计算为
a1[I]+a2[j]+a3[k]
的数字X,我如何计算
I
j
k

示例:

  • X=458752=>
    i=0
    j=7
    k=0
    ,即458752=0+458752+0
  • X=131586=>
    i=2
    j=2
    k=2
    ,即131586=256+131072+2
  • X=65793=>
    i=1
    j=1
    k=1
    ,即65793=256+65536+1
  • 这个

    应该有用


    数组索引从0开始,因此从技术上讲,
    $Array[1]
    是数组中的第二个元素。

    首先,你要把问题写清楚

    您的第一个数组计数与其他两个数组不匹配。因此,如果3个数组的计数必须相等,则可以轻松获得值。如果需要自定义加法值,请对数组值进行硬编码,然后尝试加法

    方法1:所有3个数组的计数都相同

    <?php
    $first = Array (0 => 0, 1 => 256, 2 => 512, 3 => 768, 4 => 1024, 5 => 1280, 6 => 1536, 7 => 1792, 8 => 2048, 9 => 2304, 10 => 2560, 11 => 2816, 12 => 3072, 13 => 3328, 14 => 3584, 15 => 3840, 16 => 4096, 17 => 4352, 18 => 4608, 19 => 4864, 20 => 5120, 21 => 5376, 22 => 5632, 23 => 5888 );
    
    $second =  Array (0 => 0, 1 => 65536, 2 => 131072, 3 => 196608, 4 => 262144, 5 => 327680, 6 => 393216, 7 => 458752, 8 => 524288, 9 => 589824, 10 => 655360, 11 => 720896, 12 => 786432, 13 => 851968, 14 => 917504, 15 => 983040, 16 => 1048576, 17 => 1114112, 18 => 1179648, 19 => 1245184, 20 => 1310720, 21 => 1376256, 22 => 1441792, 23 => 1507328);
    
    $third = Array (0 => 0, 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 13 => 13, 14 => 14, 15 => 15, 16 => 16, 17 => 17, 18 => 18, 19 => 19, 20 => 20, 21 => 21, 22 => 22, 23 => 23);
    
    $result = array();
    foreach($first as $key => $values){
            echo '<br>'.$values.'+'.$second[$key].'+'.$third[$key];
        $result[] = $values+$second[$key]+$third[$key];
    }
    
    print_r($result);
    ?>
    
    那么:

    foreach(array(458752, 131586, 65793) as $x) {
        $j = intval($x / 65536);
        $x = $x % 65536;
        $i = intval($x / 256);
        $k = $x % 256;
        echo "x=$x, i=$i, j=$j, k=$k\n";
    }
    
    输出:

    x=0, i=0, j=7, k=0
    x=514, i=2, j=2, k=2
    x=257, i=1, j=1, k=1
    

    问题i不清楚,你能再解释一下吗?答案是“带代码”。没有任何功能或公认的方法可以做到这一点。您只需要编写一个解决方案,它对于堆栈溢出来说过于本地化。提示:答案将涉及
    []
    ,或“数组索引”操作符。你应该坐下来读一本关于PHP.PrasanthBendra的教程,我想把缺少的和补上,得到$value$value=?+?+?我之所以问这个问题,是因为我找不到任何匹配函数。458752是定义/输入的值$value 0+458752+0是数组如何计算它,看起来像是填充一个缺少的值,直到它相等,但使用数组键我想我知道你想要什么。我重新表述了您的问题(并将示例调整为基于0的索引)。如果我弄错了,请还原我的编辑。谢谢,这是我的目标,抱歉我的英语不好不是我的意思是我想基本上得到相等的值如果array1>$value或value$array1=$value,然后循环停止,但是如果$array1还不相等,那么它将在array2中+直到相等,依此类推。我爱你的代码,这几乎是我想要的,我能重新获得值吗?我定义了$value结果,得到$first[0]+$second[7]+$third[0];我的意思是458752=$first[0]+$second[7]+$third[0];非常感谢,但是问题还没有解决如果你想要硬编码的结果对编码来说是件坏事,它不可能动态开发。这个问题很难回答,因为它将结果显示为它的和值,我输入刚刚设置的$first_result,get=$first[0]+$second[7]+$third[0];正是这一点。哈哈哈解决了!这就是我想要的谢谢你先生在加载之前,我设法通过循环运行它,但您的代码运行如风,谢谢@不客气
    foreach(array(458752, 131586, 65793) as $x) {
        $j = intval($x / 65536);
        $x = $x % 65536;
        $i = intval($x / 256);
        $k = $x % 256;
        echo "x=$x, i=$i, j=$j, k=$k\n";
    }
    
    x=0, i=0, j=7, k=0
    x=514, i=2, j=2, k=2
    x=257, i=1, j=1, k=1