Производительность: is_numeric() и is_string() в цикле foreach

У меня есть куча массивов в массиве ex.

$array =
         array(
            array(/../),
            array(/../),
            array(/../),
            //upto 100-200 arrays
         );

После этого я буду использовать foreach в echo все они. Здесь есть некоторая проверка, является ли $key является is_numeric() или же is_string(), например:

array(
   'the_key_here_is_numeric',
   'string' => 'the key is string'
);

Итак, у меня есть foreach как это:

foreach($array as $arr => $arrays) {
   foreach($arrays as $key => $value) {
      if(is_numeric($key)) {
         /.../
      }
      if(is_string($key)) {
         /../
      }
   }
   echo /../;
}

Когда я проверил это с помощью KCacheGrindочевидно, is_string() а также is_numeric() будет использоваться несколько раз, мой вопрос, это повлияет на производительность? Если так, есть ли лучший способ сделать это?

1 ответ

Решение

Просто используйте еще. Тогда условие будет проверено только один раз

Не

if(is_numeric($key)) {
         /.../
      }
      if(is_string($key)) {
         /../
      }

Но

  if(is_string($key)) {
     /../
  } else {
     /.../
  }
Другие вопросы по тегам