我正在构建一个解析网站和存储链接和图像的程序,我将它们存储在单独的数组中,一个数组用于链接,一个用于图像等。我想把它保存在一个多维数组上。我该怎么做呢?我有三个函数返回一个ID数组,包含我存储的主题的ID,另一个函数返回我保存的主题的标题数组,另一个函数返回所有图像链接的数组。所以我的"main"函数是:
$array_id = getIds();
$array_titles = getTitles($array_id);
$array_images = getImages($array_id);
我想以某种方式存储它,当我调用
时$数组($ id][图片]美元
我得到这个主题ID上的所有图像,或者如果我调用
$数组($ id][标题]美元
我得到了这个主题的标题ID,这是可能的吗?还是说这是最好的方法?我是php新手,如果我用的是C,我会创建一个结构体,所以我不知道php中是否有类似的东西,非常感谢。
您需要的函数不是返回所有标题和所有图像的数组,而是只返回与单个id相关的标题或图像。我们不知道你是如何定义你的函数的。
//Get all your ids
$array_id = getIds();
// Functions take an id and retrieve only its related objects
function getTitles($id) {}
function getImages($id) {}
//Iterate over the ids, and retrieve the titles and images for each
foreach ($array_id as $id)
{
// getTitles returns an array, keyed as 'titles' in the id array
$id['titles'] = getTitles($id);
// getImages returns an array, keyed as 'images' in the id array
$id['images'] = getImages($id);
}
// Now you can retrieve them like so:
// A single title...
echo $array_id[0]['titles'][0];
// All titles
print_r($array_id[0]['titles'];
结果数组的结构看起来像这个模型:
Array
(
[0] => Array
(
[titles] => Array
(
[0] => title 0a
[1] => title 0b
[2] => title 0c
)
[images] => Array
(
[0] => img0a.jpg
[1] => img0b.jpg
)
)
[1] => Array
(
[titles] => Array
(
[0] => title 1a
[1] => title 1b
[2] => title 1c
)
[images] => Array
(
[0] => img1a.jpg
[1] => img1b.jpg
)
)
[2] => Array
(
[titles] => Array
(
[0] => title 2a
[1] => title 2b
[2] => title 2c
)
[images] => Array
(
[0] => img2a.jpg
[1] => img2b.jpg
)
)
)
如果它对你有帮助,下面是我用php -a
交互式解释器创建数组模型的方法:
php > $ids = array();
php > $ids[0] = array('titles'=>array('title 1', 'title 2', 'title 3'), 'images'=>array('img1.jpg', 'img2.jpg'));
php > $ids[1] = array('titles'=>array('title 1a', 'title 1b', 'title 1c'), 'images'=>array('img1a.jpg', 'img1b.jpg'));
php > $ids[2] = array('titles'=>array('title 2a', 'title 2b', 'title 2c'), 'images'=>array('img2a.jpg', 'img2b.jpg'));
php > $ids[0] = array('titles'=>array('title 0a', 'title 0b', 'title 0c'), 'images'=>array('img0a.jpg', 'img0b.jpg'));
php > print_r($ids);
您可能想考虑PHP类作为替代方案,因为struct基本上是一个具有默认公共数据成员的类,它可能是这种形式:
class arrayInfo {
public var id;
public var title;
public var image;
}
你可以在数组中使用它们:
$cur_array = array();
$cur_array[0] = new arrayInfo();
$cur_array[1] = new arrayInfo();
. .差不多就是这样。