我需要 PHP 函数来比较两个数组中元素的顺序。第一个数组是标准数组,保存正确的顺序,第二个数组是要比较的数组。
数组中要比较的元素可以重复。
要比较的数组不能包含标准具数组中的所有元素。
例子:
<?php
// Standard
$standard = array(
'taxonomy',
'post_meta',
'author',
'date',
'post_meta_num'
);
// Valid order
$valid_order = array(
'taxonomy',
'taxonomy',
'post_meta',
'date'
);
// Invalid order, 'author' is before 'post_meta'
$invalid_order = array(
'taxonomy',
'author',
'author',
'post_meta'
);
?>
我试图在 StackOverflow 上找到一些东西,但已有的答案与我的任务不兼容。仅当要比较的数组包含标准中的所有元素时,此函数才能正常工作。
<?php
function compare( $standard, $to_compare ){
if( ! is_array( $standard ) || ! is_array( $to_compare ) ){
return false;
}
$i = 0;
foreach ( $to_compare as $value ) {
if( $value === $standard[$i] ){
$i++;
}
}
return ( $i == count( $standard ) );
}
?>
最后,如果要比较的标准和数组中的顺序相等,则该函数应返回 true;如果不相等,则该函数应返回 false。谢谢。
手掌心
当年话下
忽然笑
杨魅力