PHP поиск многомерных массивов по условиям - PullRequest
0 голосов
/ 02 октября 2019

Я занимаюсь разработкой финансового веб-приложения. Я действительно застрял в этой проблеме.

Мне нужно выполнить поиск по условиям и вернуть массив, если условие выполнено.

Я знаюпоиск в многомерном массиве, но я не получил никакого представления об этом. Например:

if array[0][7] > array[0][8] && array[0][12] < array[0][15]

Пожалуйста, предложите мне решение

Array ( 
  [0] => Array ( 
    [0] => 54452 
    [1] => 'KSB'
    [2] => 'INE999A01015'
    [3] => 'EQ' 
    [4] => 'Ksb Limited' 
    [5] => -0.70 
    [6] => -0.10 
    [7] => 662.90 
    [8] => 663.60 
    [9] => 669.35 
    [10] => 678.25 
    [11] => 651.55 
    [12] => 7874 
    [13] => 676.91 
    [14] => 690.93 
    [15] => 703.61 
    [16] => 664.23 
    [17] => 650.21 
    [18] => 637.53 
    [19] => 623.51 
    [20] => 2530 
    [21] => 32.13 
    [22] => 825.00 
    [23] => 539.00 
    [24] => 665.89 
    [25] => 631.37 
    [26] => 616.65 
    [27] => 610.14 
    [28] => 615.89 
    [29] => 656.25 
    [30] => 680.74 
    [31] => 60.71 
    [32] => 60.71 
    [33] => 13.62 
    [34] => 29.39 
    [35] => -38.97 
    [36] => 129.47 
    [37] => 2019-09-26 
    [38] => 27632 
  ), 
  [1] => Array ( 
    [0] => 53772 
    [1] => 'ASPINWALL' 
    [2] => 'INE991I01015' 
    [3] => 'EQ' 
    [4] => 'Aspinwall And Company Limited' 
    [5] => -10.50 
    [6] => -7.74 
    [7] => 127.45 
    [8] => 137.95 
    [9] => 135.60 
    [10] => 144.50 
    [11] => 112.60 
    [12] => 9583 
    [13] => 143.76 
    [14] => 160.08
    [15] => 175.66 
    [16] => 128.18 
    [17] => 111.86 
    [18] => 96.28 
    [19] => 79.96 
    [20] => 5108 
    [21] => 53.30 
    [22] => 214.80 
    [23] => 112.60 
    [24] => 135.17 
    [25] => 137.13 
    [26] => 137.46 
    [27] => 136.86 
    [28] => 137.59 
    [29] => 143.00 
    [30] => 153.89 
    [31] => 39.41 
    [32] => 39.41 
    [33] => -0.90 
    [34] => 37.96 
    [35] => -58.05 
    [36] => -361.91 
    [37] => 2019-09-26 
    [38] => 26324 
  ) 
) 

Заранее спасибо

1 Ответ

0 голосов
/ 02 октября 2019

Попробуйте следующий код и внесите необходимые изменения в соответствии с вашими потребностями

function search_sg_dma($array, $pre_close, $dma_value, $close_price){

...

    $result = array();
    for( $i = 0; $i < count( $array ); $i++ ) {
        if ( $array[$i][$pre_close] < $array[$i][$dma_value] && $array[$i][$close_price] > $array[$i][$dma_value] ) {
            $result[] = array[$i];
        }
    }
    return $result;
}
...