【发布时间】:2010-12-24 18:58:15
【问题描述】:
我有一个名为$data 的多维数组,它基本上是从表中提取到数组中的数据。
这就是我使用 JS_extractor 获取数组的方式:
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"
}
}
我还有一个Mysql数据库表叫warlord
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)添加到军阀表中并将它们设置为活动 (1)
我希望同样在数组中的用户 (Thadson) 保持活动状态 (1)
但是我希望不在数组中的用户 (John) 设置为非活动 (0)
并让不在数组中(并且已经处于非活动状态)的管理员处于非活动状态(0)
我知道这是一个非常初学者的问题,但我该怎么做呢?
谢谢
【问题讨论】:
-
你能告诉我们数组的代码吗? var_dump 的可读性不是很好。
-
或格式化 var_dump 使其可读
-
抱歉,John 不应该在数组中。现在已经修好了……
-
顺便说一句,谁修好了我的阵列,所以它看起来不错且可读,谢谢!!!
-
我添加了如何按要求获取数组的代码。
标签: php mysql multidimensional-array