Есть ли какой-либо простой способ проверить, являются ли все элементы массива экземплярами определенного типа без цикличного выполнения все элементы? Или по крайней мере простой способ получить все элементы типа X от массива.
Eclipse CDT позволяет записать прототип в файл заголовка и автоматически добавить его в файл C.
Instructions
Это, вероятно, лучшее, что вы собираетесь выйти из окна
-121--2724930-Существует ли какой-либо простой способ проверки того, что все элементы массива [что-то что-то] не закольцовывают все элементы?
Нет. Невозможно проверить все элементы массива без проверки всех элементов массива.
Хотя вы можете использовать массив _ обхода
, чтобы сохранить себя написание шаблона самостоятельно.
Этого невозможно достичь без проверки всех элементов массива, но для помощи можно использовать встроенные функции массива.
Можно использовать array _ filter
для возврата массива. Необходимо указать собственную функцию обратного вызова в качестве второго аргумента для проверки определенного типа. При этом проверяется, являются ли номера массива четными .
function even($var){
return(!($var & 1));
}
// assuming $yourArr is an array containing integers.
$newArray = array_filter($yourArr, "even");
// will return an array with only even integers.
Согласно комментарию VolureK, начиная с PHP 5.3 + вы также можете передать анонимную функцию в качестве второго аргумента. Это эквивалентно приведенному выше примеру.
$newArray = array_filter($yourArr, function($x) { return 0===$x%2; } );
$s = array("abd","10","10.1");
$s = array_map( gettype , $s);
$t = array_unique($s) ;
if ( count($t) == 1 && $t[0]=="string" ){
print "ok\n";
}
Есть ли простой способ проверить, все ли элементы массива [что-то, что-то], без зацикливания всех элементов?
Нет. Вы не можете проверить все элементы массива, не проверив все элементы массива.
Хотя вы можете использовать array_walk
, чтобы не писать шаблон самостоятельно.
Вы также можете объединить array_walk
с create_function
и использовать анонимную функцию для фильтрации массива. Что-то вроде:
$filtered_array = array_filter($array, create_function('$e', 'return is_int($e)'))