2013-03-29 221 views
-1

我试图让我的头绕着数组。这是上一个问题的后续。 PHP How can I pass values from one array to another?如何将数组作为变量传递给新函数php

所以,我已经找到了如何从一个数组的数据传递到另一个感谢:Explosion Pills但现在我试图把数组,并通过它传递给一个新的功能,然后创建新的数组在新功能中。我猜这个比现在对我来说比较容易。

这里是数组:

$theSetup = array(

     'option1' => array('title'=>'my_title','label'=>'The Big Title','val'=>'NoneyoBizness'), 
     'option2' => array('title'=>'my_watch,'label'=>'Big Watch','val'=>'Seiko'), 
     'option3' => array('title'=>'facebook','label'=>'Facebook Page','val'=>'http://facebook.com/bigwatch'), 

); 

这里是我的测试功能:

function testArray($theSetup) { 
    foreach($theSetup as $v) { 
     $defaultOptions[$v['title']] = $v['val']; 
    } 
    foreach($defaultOptions as $k=>$v) { 
     echo $k .' : '.$v .'<br>'; 
    } 
} 
testArray($theSetup); 

运行代码后,我得到一个错误:undefined variable theSetup

+2

你可以张贴的完整代码?所以我们知道你在哪里创建$ theSetup – Nelson

+1

你上哪儿去定义'$ theSetup'范围有多大?如果它在不同的范围/上下文中,PHP将无法找到它。 –

+1

这是一个简单的调试问题。 –

回答

1

您需要使用文本编辑器当你的PHP代码有错时显示你。

这工作得很好:

<?php 
    $theSetup = array(

      'option1' => array('title'=>'my_title','label'=>'The Big Title','val'=>'NoneyoBizness'), 
      'option2' => array('title'=>'my_watch','label'=>'Big Watch','val'=>'Seiko'), 
      'option3' => array('title'=>'facebook','label'=>'Facebook Page','val'=>'http://facebook.com/bigwatch'), 

    ); 

    function testArray($theSetup) { 
     foreach($theSetup as $v) { 
      $defaultOptions[$v['title']] = $v['val']; 
     } 
     foreach($defaultOptions as $k=>$v) { 
      echo $k .' : '.$v .'<br>'; 
     } 
    } 
    testArray($theSetup); 
?> 

这不:

<?php 
    $theSetup = array(

      'option1' => array('title'=>'my_title','label'=>'The Big Title','val'=>'NoneyoBizness'), 
      'option2' => array('title'=>'my_watch,'label'=>'Big Watch','val'=>'Seiko'), 
      'option3' => array('title'=>'facebook','label'=>'Facebook Page','val'=>'http://facebook.com/bigwatch'), 

    ); 

    function testArray($theSetup) { 
     foreach($theSetup as $v) { 
      $defaultOptions[$v['title']] = $v['val']; 
     } 
     foreach($defaultOptions as $k=>$v) { 
      echo $k .' : '.$v .'<br>'; 
     } 
    } 
    testArray($theSetup); 

?> 

不同的是我关闭了引号后 “my_watch。”

输出

This works fine: my_title : NoneyoBizness 
my_watch : Seiko 
facebook : http://facebook.com/bigwatch 
+0

。你想详细说明一下吗? – Starfs

+0

Emacs的Adobe DreamWeaver,NetBeans,Aptana,Komodo,Notepad ++和GUI版本都具有代码语法突出显示功能,可以在代码中发生意外事件时告诉您。就像你在这个页面上的例子,它会告诉你某些东西没有被正确引用。 –