就像我已经在评论
print_r(array("\00foo\00bar" => 'works'));
作品说。但是,没有任何理由使用implode
或serialize
或空字节键进行操作。
如果你想看到阵列是否相同,那么你可以对它们进行比较:
$input1 = array('product_id' => 1, 'variation_id' => 2, 'foo' => 'bar');
$input2 = array('product_id' => 1, 'variation_id' => 2, 'foo' => 'bar');
var_dump($input1 === $input2);
将输出true
而
$input3 = array('product_id' => 1, 'variation_id' => 2, 'foo' => 'foobarbaz');
var_dump($input1 === $input3);
会给false
。
引述PHP Manual on Array Operators:
$a == $b Equality TRUE if $a and $b have the same key/value pairs.
$a === $b Identity TRUE if $a and $b have the same key/value pairs in the same order and of the same types.
而且,PHP具有用于从阵列中删除重复的值的函数:
而当你的第二个参数设置为SORT_REGULAR
,PHP会比较平等,例如数组
$data = array(
array('product_id' => 1, 'variation_id' => 2, 'foo' => 'bar'),
array('product_id' => 1, 'variation_id' => 2, 'foo' => 'bar'),
array('product_id' => 2, 'variation_id' => 2, 'foo' => 'bar')
);
print_r(array_unique($data, SORT_REGULAR));
将数组减少到只有第一个和第三个元素。
你能显示代码吗? – evan
'print_r(array(“\ 00foo \ 00bar”=>'works'));'适用于我,是的,你应该使用另一种解决方案。如何使用多维数组呢?也许,如果你能解释你想要达到的目标,我们可以找到更好的方法来解决这个问题。 – Gordon