如何从变量中创建数组?

时间:2015-10-23 14:11:19

标签: php mysql

我有来自文本文件和mySQL数据库的值,我想比较一下:

以下是我从文本文件中获取的值:

foreach($list as $row) {
      echo $row['cat']."<br>";
}

我的结果:

A2345
B7890

以下是我的数据库中的值:

$sql = "SELECT cat FROM animals WHERE id = '$id'";                  
$q = $pdo->prepare($sql);
$q->execute();

foreach ($pdo->query($sql) as $row) {
   echo $row['cat']."<br>";
}

结果:

A2345
B7890

到目前为止一切都很好。

现在我的问题:

为了比较数据库内容和文本文件内容,我想将这两个结果存储在一个数组中并进行比较。

所以我的目标是为两个来源获得以下结果:

array(2) {
  ["cat"]=>
  string(5) "A2345"
  ["cat"]=>
  string(5) "B7890"
}

所以最后我可以写:

If (array1 == array2) { echo "The content of database and textfile match" }

这就是我的问题。我不知道如何实现它。因为如果我写...

echo "<pre>";
var_dump ($list);
echo "</pre>";

......我会得到这个结果:

array(2) {
  [0]=>
  array(2) {
    ["cat"]=>
    string(5) "A2345"
    ["name"]=>
    string(3) "tom"
  }
  [1]=>
  array(2) {
    ["cat"]=>
    string(5) "B7890"
    ["name"]=>
    string(3) "sam"
  }
}

如果我写这个......

echo "<pre>";
    var_dump ($list["cat"]);
    echo "</pre>";

......我会得到:

NULL

并且将数据库结果放入数组中对我来说是一个很大的问题。

我写道:

foreach ($pdo->query($test) as $row) {
    $data[] = $row;
    echo "<pre>";
    var_dump($data);
    echo "</pre>";
}

但我的结果是:

  array(1) {
      [0]=>
      array(2) {
        ["cat"]=>
        string(32) "A2345"
        [0]=>
        string(32) "A2345"
      }
    }
    array(2) {
      [0]=>
      array(2) {
        ["cat"]=>
        string(32) "A2345"
        [0]=>
        string(32) "A2345"
      }
      [1]=>
      array(2) {
        ["cat"]=>
        string(32) "B7890"
        [0]=>
        string(32) "B7890"
      }
    }

我很抱歉我对这件事感到很困惑,但我很感激每一个提示。

1 个答案:

答案 0 :(得分:1)

我找到了一个可以使用的解决方案:

为文本文件:

$cat = array();
       foreach($list as $row) {
              $cat[] = $row['cat'];
        }
var_dump($cat);

和数据库:

$cat = array();
  foreach ($pdo->query($sql) as $row) {
      $cat[] = $row['cat'];
    }

var_dump($cat);

所以我得到结果:

array(2) { 
[0]=> string(5) "A2345" 
[1]=> string(5) "B7890" 
}

现在我有两个可以比较的数组!