php определяет положение ключа массива относительно другого ключа - PullRequest
1 голос
/ 08 марта 2011

Мне было интересно, можно ли было определить, в каком положении находится ключ в массиве по отношению к другому ключу. У меня большой многомерный массив, и мне нужно выполнить функцию A, когда клавиша [E14_21] предшествует [E14_20], и мне нужно выполнить другую функцию B, если нет ...

//perform Function A if:
[E14_20_0] => Array
    (
        [E14_21] => 3235
        [E14_20] => 96
    )
//Perform Function B if:
[E14_20_0] => Array
    (
        [E14_20] => 96
        [E14_21] => 3235
    )

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Вы можете сделать что-то вроде:

$keys = array_keys($E14_20_0);
if(array_search("E14_21", $keys) < array_search("E14_20", $keys)) {
  // function A
} else {
  // function B
}

Вам, конечно, нужно добавить некоторые проверки работоспособности, чтобы убедиться, что оба ключа существуют в массиве и т. Д.

1 голос
/ 08 марта 2011

Кажется, вы могли бы сделать это:

reset($E14_20_0);
first = each($E14_20_0);
second = each($E14_20_0);

if(first['key'] > second['key'])
{
    //do something
}

Это очень специфично для вашего примера, но может помочь вам начать работу.

reset () сбросит указатель массива на «первый» элемент. each () возвращает ключ и значение массива на основе указателя и продвигает указатель. Затем вы можете сравнить ключи и выполнить свою логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...