Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-数组_diff给出数组到字符串的转换错误_Php_Array Difference - Fatal编程技术网

PHP-数组_diff给出数组到字符串的转换错误

PHP-数组_diff给出数组到字符串的转换错误,php,array-difference,Php,Array Difference,我有一个数组,看起来像这样 $breadcrumbs = Array ( [0] => Array ( [0] => Home [1] => homepage.html ) [1] => Array ( [0] => About [1] => aboutpage.html )

我有一个数组,看起来像这样

$breadcrumbs = Array
(
    [0] => Array
        (
            [0] => Home
            [1] => homepage.html
        )

    [1] => Array
        (
            [0] => About
            [1] => aboutpage.html
        )

    [2] => Array
        (
            [0] => Contact
            [1] => contactpage.html
        )

)

$remove = Array
(
    [0] => Home
)
我正在尝试使用array_diff从$breadcrumbs中删除Home条目,如下所示

return ( array_diff($breadcrumbs, $remove) );

它不工作,给我数组到字符串的转换错误,我哪里出错了?

你可以使用
Array\u filter
来过滤数组。在数组中使用
检查由字符串组成的数组

$breadcrumbs = array(
    array('Home','homepage.html'),
    array('About','aboutpage.html'),
    array('Contact','contactpage.html')
);

$remove = array('Home');

$result = array_filter($breadcrumbs, function($o) use ($remove) {
    return !in_array( $o[0], $remove );
});

echo "<pre>";
print_r( $result );
echo "</pre>";

另一个选项,如果只需要页面名称(元素0),可以使用
array\u列
将多维array转换为简单数组

Array
(
    [1] => About
    [2] => Contact
)
这将导致:

$breadcrumbs = array_column($breadcrumbs, null, 0);
$breadcrumbs = array_diff_key($breadcrumbs, array_flip($remove));
print_r($breadcrumbs);

您可以使用
array\u filter
过滤阵列。在数组中使用
检查由字符串组成的数组

$breadcrumbs = array(
    array('Home','homepage.html'),
    array('About','aboutpage.html'),
    array('Contact','contactpage.html')
);

$remove = array('Home');

$result = array_filter($breadcrumbs, function($o) use ($remove) {
    return !in_array( $o[0], $remove );
});

echo "<pre>";
print_r( $result );
echo "</pre>";

另一个选项,如果只需要页面名称(元素0),可以使用
array\u列
将多维array转换为简单数组

Array
(
    [1] => About
    [2] => Contact
)
这将导致:

$breadcrumbs = array_column($breadcrumbs, null, 0);
$breadcrumbs = array_diff_key($breadcrumbs, array_flip($remove));
print_r($breadcrumbs);

使用一些数组技巧,您可以将面包屑数组转换为关联数组,由第一项设置关键帧,然后与翻转的
$remove
数组一起使用(将值转换为关键帧)

如果希望结束数组是不带字符串键的基于0的数组,请添加


使用一些数组技巧,您可以将面包屑数组转换为关联数组,由第一项设置关键帧,然后与翻转的
$remove
数组一起使用(将值转换为关键帧)

如果希望结束数组是不带字符串键的基于0的数组,请添加

array_diff()
在具有普通数组的多维数组上??我认为在多维数组和普通数组上,不可能重复
array\u diff()
??我认为这不可能是一个复制品