如何在php中创建一个关联数组

时间:2014-12-04 04:06:01

标签: php

我是初学者使用PHP而且我有这个字符串使用关联数组连接,我有一个想法,但它会在数组中使用数组这里是代码

$GLOBALS['batman'] = /*** Find the appropriate associative array. ***/;

function robin()
{

   $z = 'flash';
   return $z;
}

function ironman()
{ 
   $answer = $GLOBALS['batman']['superman']['spiderman'][robin()][0]; // "The sum is " - this is a string 
   $answer .= $GLOBALS['batman']['superman']['spiderman'][robin()][1] // 14 - this is an integer
        + $GLOBALS['batman']['superman']['spiderman'][robin()]['hulk'][2];  // 11 - this is an     integer
   return $answer;
}

echo ironman(); // this should print out "The sum is 25"

1 个答案:

答案 0 :(得分:3)

以下是发回给你的教授"作为你可以传递给学生的​​代码类型的一个例子。只要提及像$GLOBALS这样的东西就应该从所有教科书中消除;学习如何将变量传递给函数更有用。

<?php

error_reporting(~0);

function robin()
{
   $z = 'flash';
   return $z;
}

function ironman(array $data)
{ 
  return sprintf('%s%d',
    $data['batman']['superman'][robin()][0],
    $data['batman']['superman'][robin()][1] + $data['batman']['superman'][robin()]['hulk'][2]
  );
}

$data = array(); // fill in appropriate data structure here
echo ironman($data); // this should print out "The sum is 25"

现在,当您运行此代码时,您将从解释器获得有关缺少的内容的提示:

PHP Notice:  Undefined index: batman in assoc.php on line 15

这意味着$data数组缺少'batman'索引;这是你添加它的方式:

$data = array(
  'batman' => array(),
);

再次运行它将显示以下内容:

PHP Notice:  Undefined index: superman in assoc.php on line 15

这意味着您的$data['batman']数组缺少'superman'索引;所以你也添加了缺失的索引:

$data = array(
  'batman' => array(
    'superman' => array(),
  ),
);

基本上你一直在改变结构,直到翻译停止抱怨,这也应该给出正确答案。