检索php中使用的数组/子数组名称



我有一个多维数据库数组,它是从我的服务器生成的:

// place db tables into array
$da_db = array(
'test' => array(
    // test.users
    'users' => array('fname','lname','info'),
    // test.webref_rss_details
    'webref_rss_details' => array('id','title','link','description','language','image_title','image_link','item_desc','image_width','image_height','image_url','man_Edit','webmaster','copyright','pubDate','lastBuild','category','generator','docs','cloud','ttl','rating','textInput','skipHours','skipDays'),
    // test.webref_rss_items
    'webref_rss_items' => array('id','title','description','link','guid','pubDate','author','category','comments','enclosure','source','chan_id')
),
'db_danaldo' => array(
    //code here
),
'frontacc' => array(
    //code here
)

(数组)(db)(表)(领域)

正如您所看到的,当前填充的数据库指的是我正在处理的RSS项目-一个表用于频道,另一个表用于该频道中的项目,目前这是另一个问题('Users'表现在不重要).

我想做的是返回数组/子数组名称,并将每个转换为变量,作为SQL查询中字符串的一部分使用,还需要为我需要连接的表的别名:

(e.g. SELECT * FROM 'webref_rss_items' WHERE 'chan_id' = 'test.webref_rss_details.id')

其中'webref_rss_items'是一个变量,'chan_id'是一个变量,'test.webref_rss_details. '是一个变量。id'是连接字符串中的3个变量,虽然我听说SQL查询中的连接不是很好的实践,安全方面…奇怪的是,在所有这些值中,我只能检索到最深层的'id':

echo "{$da_db['test']['webref_rss_details'][0]}"

,但得到'Array'返回或数组的最后一个值,当我试图访问的名称!!

这样做的原因是,PHP文件的查询将在服务器的"公共"部分,并希望有使用变量与没有内涵的原始名称(s),它似乎更方便,因为变量可以互换,我不会使用相同的路径所有的时间。

编辑:我的想法是从['db']['field']获得键名。我所达到的最接近的是在foreach循环中迭代键和array_fill,在另一个foreach, array_combine中使用range(),然后var_dump组合数组,如下所示:

foreach($da_db['test'] as $key1 => $val) { //put key-names into array1 to use as values
$a = array();
$a = array_fill(0, 1, $key1);
print($key1.'<br />');
}   
foreach (range(0, 2) as $number) {         //array for numbers to use as keys
$b = array();
$b = array_fill(0, 1, $number);
    echo $number.'<br />';
}
$c = array_combine($b, $a);                //combine both for new array
print_r($c.'<br />');

我可以使用array_slice来获得我想要的名称!(长喘气的?)问题是,这个结果只显示最后的key => value;根据不同的命令(print_r、print、echo),它显示:

[2] => webref_rss_items 

或数组。

我希望这些信息足够了。

我在这里看到过类似的问题,但通常适用于一个值,或数组的一个级别,但如果你以前见过这个问题,请建议并指出正确的方向。

您的两个顶级数组(db name和table name)是"named-key"数组。字段级数组(表名数组的值)是一个"整数键"数组。PHP会自动为仅用值定义的数组添加数字索引。对于"命名键"数组,您只能通过使用您定义的键名来访问它们的值。

例如:

$array1 = array('zero', 'one', 'two');
echo $array1[2]; // two
$array2 = array('zero' => 'this is zero', 'one' => 'this is one');
echo $array2['zero']; // this is zero
echo $array2[0]; // undefined

PHP提供了一个名为array_keys()的函数,它将返回一个包含所有键名的整数索引数组。所以你可以使用整数值访问你的表数组,你可以这样做。

$da_db_test_keys = array_keys($da_db['test']);
echo $da_db_test_keys[1];

也许这对你有一点帮助。我不是100%你计划如何访问数组中的值,所以如果你有任何问题,请尽量澄清这部分。

相关内容

  • 没有找到相关文章

最新更新