Php 从多维数组到MySQL

Php 从多维数组到MySQL,php,mysql,multidimensional-array,Php,Mysql,Multidimensional Array,我有一个名为$data的多维数组,它基本上是从表中提取到数组中的数据 这是我使用JS_提取器获取阵列的方式: set_include_path(get_include_path() . PATH_SEPARATOR . './library/'); require_once 'JS/Extractor.php'; $extractor = new JS_Extractor(file_get_contents('temp.html')); $body = $extractor->query

我有一个名为
$data
的多维数组,它基本上是从表中提取到数组中的数据

这是我使用JS_提取器获取阵列的方式:

set_include_path(get_include_path() . PATH_SEPARATOR . './library/');
require_once 'JS/Extractor.php';
$extractor = new JS_Extractor(file_get_contents('temp.html'));

$body = $extractor->query("body")->item(0);

$table = $body->query("//table[@class='rstatisztika_tabla']")->item(0);

$data = array();
foreach ($table->query('tr') as $i => $tr) {
    if ($i == 0) {
        continue;
    }
    $a = $tr->query('.//a');
    $a = $a->item($a->length - 1);
    $url = $a->getAttribute('href');
    $parsed = parse_url($url);
    parse_str($parsed['query'], $query);
    $data[] = array(
        $a->textContent,
        $url,
        $query['user'],
    );
}
//var_dump($data);
当我真的这么做的时候

var_dump($data);
我明白了:

array(3)
{
    [0]=> array(3)
    {
        [0]=> string(4) "Thad"
        [1]=> string(7) "http://localhost/index.php?m=karakterlap&user=91"
        [2]=>  string(2) "91"
    }
    [1]=> array(3)
    {
        [0]=> string(4) "Bill"
        [1]=> string(8) "http://localhost/index.php?m=karakterlap&user=110"
        [2]=> string(3) "110"
    }
    [2]=> array(3)
    {
        [0]=> string(7) "Thadson"
        [1]=> string(7) "http://localhost/index.php?m=karakterlap&user=147"
        [2]=> string(3) "147"
    }
}
我还有一个名为warrord的Mysql数据库表

CREATE TABLE IF NOT EXISTS `warlord` (
  `id` int(5) NOT NULL default '0',
  `name` varchar(35) character set utf8 NOT NULL default '',
  `active` tinyint(1) NOT NULL default '1',
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

INSERT INTO `warlord` (`id`, `name`, `active`) VALUES
(2, 'Admin', 0), (100, 'Thadson', 1), (147, 'John', 1);
从数组中,我想将新用户(Thad和Bill)添加到Warrord表中,并将它们设置为活动(1)
我希望也在阵列中的用户(Thadson)保持活动状态(1)
但是,我希望将不在阵列中的用户(John)设置为非活动(0)
并使不在阵列中(且已处于非活动状态)的管理员处于非活动状态(0)

我知道这是一个非常初级的问题,但是我该怎么做呢


谢谢

您可能需要使用array\u map函数为多数组设置回调函数,并相应地进行处理:


我看到了这一点,并尝试过:

$data = array();
for($i=0; $i<count($data_array); $i++){
  $data_items[$i] = explode(',', $data_array[$i]);   // create a multi-dimensional array
  $data[] = '( ' .$data_items[$i][2]. ', '.$data_items[$i][0]. ', '. 1 .')';
}

$sql = "INSERT INTO warlord(id, name, active) VALUES ('".$data_items[$i][2]."','".$data_items[$i][0]."','1') ";
$data=array();
对于($i=0;$i string(7)“user=91”),我尝试将元素[2]和[0]插入表中,并通过将1放入活动字段来激活新用户


这显然不能满足我的所有需求(实际上它不能满足任何需求),我也不知道我在做什么。这就是我寻求帮助的原因。

如果我要解决这个问题,我会首先尝试将我的数组(
$data
数组以及数据库中的数组)组织成类似的格式(可能使用
id
作为数组键)这样我就可以计算出
$data
$database
中的人员(即应设置为活动状态的人员),以及
$data
中的人员和
$database
中的(即需要添加到数据库中的人员),然后再计算出
数组
(这次首先使用
$database
)计算
$database
中的人员和
$data
中的(即应设置为非活动的人员)


希望这有助于让您进入编写轨道。抱歉,我没有时间为您实际编写代码。

您能给我们展示数组的代码吗?var_转储不是很可读。或者格式化var_转储,使其可读。抱歉,John不应该在数组中。它现在已经修复了……顺便说一句,谁修复了我的数组,它就可以了看起来不错,可读性很好,谢谢!!!我添加了如何根据请求获取数组的代码。