Php 将数组转换为其他类型

Php 将数组转换为其他类型,php,wordpress,Php,Wordpress,很久没有接触过PHP了,我有点生疏了。我需要一些指导从这里走到哪里 我有两个数组,我想比较并找出它们之间的差异,但是我不能比较这两个数组,因为它们的格式不正确 我不太确定这些格式是什么,通常也不会深入研究PHP领域 下面是我要转换的第一个数组: Array ( [0] => 2018-08-21 10:00:00 [1] => 2018-08-28 10:00:00 [2] => 2018-09-

很久没有接触过PHP了,我有点生疏了。我需要一些指导从这里走到哪里

我有两个数组,我想比较并找出它们之间的差异,但是我不能比较这两个数组,因为它们的格式不正确

我不太确定这些格式是什么,通常也不会深入研究PHP领域

下面是我要转换的第一个数组:

    Array (
            [0] => 2018-08-21 10:00:00 
            [1] => 2018-08-28 10:00:00
            [2] => 2018-09-04 10:00:00 
            [3] => 2018-09-11 10:00:00
            [4] => 2018-09-18 10:00:00
          )
我想转换成这样的东西:

   Array ( 
           '0' => '2018-08-21 10:00:00', 
           '1' => '2018-08-28 10:00:00',
           '2' => '2018-09-04 10:00:00', 
           '3' => '2018-09-11 10:00:00', 
           '4' => '2018-09-18 10:00:00'
         )
一旦我这样做了,我就可以使用array_diff将它与另一个数组进行比较,但是在此之前我有点卡住了。任何帮助都将不胜感激

我想比较的第二个数组的格式相同。但价值观不同

这是我的问题:

下面是一个我想要的示例:


提前感谢。

如果您绝对肯定第一个数组字符串中的数据是安全的,并且总是以这种方式显示,您可以执行以下操作将其转换为真实数组:

$array_string = 'Array ( [0] => 2018-08-21 10:00:00 [1] => 2018-08-28 10:00:00 [2] => 2018-09-04 10:00:00 [3] => 2018-09-11 10:00:00 [4] => 2018-09-18 10:00:00 )';

$array_string = preg_replace('/\[(\d+)\] => (.*?)(?=\s+[[)])/s', "'$1' => '$2',", $array_string);
eval("\$array1 = $array_string;");
// $array1 contains the array
此处演示:

或者(更安全地),您可以使用相同的模式,自己手动构建阵列


您也可以这样做,这样风险更小,处理的情况也更多(虽然那里的代码使用的格式略有不同,所以您可能需要对其进行调整)。

两个数组都是相同的。你想做什么?我无法使用array_diff比较这两个数组,因为第一个数组的格式不正确。仅当两个数组的每个值周围都有“”时,它才起作用@正如你在这里看到的一样,它们都是一样的:谢谢你的帮助。我可能没有解释清楚。该数组是从WordPress数据库中提取的。因此,我缺少每个值周围的“”标记。请参见我的示例:@元素的FelippeDuartekey也可以是整数,所以不需要将其设置为字符串。然而,您的值无效,这就是为什么会出现php解析错误的原因。您有一个日期,所以值应该是字符串或某个DateTime对象。您的数组提取代码似乎不正确。你能给我看看吗?