保存多维数组中的元素



我正在构建一个解析网站和存储链接和图像的程序,我将它们存储在单独的数组中,一个数组用于链接,一个用于图像等。我想把它保存在一个多维数组上。我该怎么做呢?我有三个函数返回一个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();

. .差不多就是这样。

相关内容

  • 没有找到相关文章

最新更新