Php []字符串不支持运算符
对于这段代码,我得到了一个错误代码>Php []字符串不支持运算符,php,arrays,foreach,Php,Arrays,Foreach,对于这段代码,我得到了一个错误 PHP致命错误:[]字符串不支持运算符 $sname=array(); $i=0 foreach($data as $rs){ foreach($SchoolName as $sname){ // echo $rs['SchoolName'].'=='.$sname."<br />"; echo $i."<br />"; if($rs['SchoolNa
PHP致命错误:[]字符串不支持运算符 $sname=array(); $i=0
foreach($data as $rs){
foreach($SchoolName as $sname){
// echo $rs['SchoolName'].'=='.$sname."<br />";
echo $i."<br />";
if($rs['SchoolName'] == $sname){
$sname[] = $rs['StudentId'];
}
$i++;
}
}
foreach($rs数据){
foreach($SchoolName作为$sname){
//echo$rs['SchoolName'].='.$sname.“
”;
echo$i.“
”;
如果($rs['SchoolName']==$sname){
$sname[]=$rs['StudentId'];
}
$i++;
}
}
您给我的学生信息数组中没有“StudentId”,因此如果在下面的循环中有我注释掉的“StudentId”使用行,我假设您希望使用student数组的键
foreach ($SchoolName as $sname) {
您正在将$SchoolName
的每个元素分配给$sname
。然后在这一行:
$sname[] = $rs['StudentId'];
您试图将
$sname
视为一个数组。我怀疑您有一个重复的变量名。这应该可以-但您也必须在$rs数组中有StudentId
索引
$data = array(
array("SchoolName" => "Roy", "StudentId" => "1000,1001,1002"),
array("SchoolName" => "MIT", "StudentId" => "2000,2001,2002"),
array("SchoolName" => "Southwestern College", "StudentId" => "3000,3001,3002"),
array("SchoolName" => "National University", "StudentId" => "4000,4001,4002"),
array("SchoolName" => "Western Governors University", "StudentId" => "5000,5001,5002"),
);
$return = array();
foreach($data as $rs){
$return[$rs['SchoolName']] = $rs['StudentId'];
}
print_r($return);
现场演示:$sname=array();
$k=0;
对于($i=0;$i[]运算符不支持字符串…请解决此问题。我假设$rs是字符串而不是数组。例如,使用var_dump检查$rs的数据。错误。不要试图将字符串视为数组…我不知道,您想要实现什么。$data
,$rs
等等都不是非常清楚的变量名称。请描述什么它们是。另外,$sname=$rs['StudentId'];
中的如果
语句不起作用…你必须这样做:$SchoolName[$i]=$rs['StudentId'];
中的$rs是一个数组,$rs['SchoolName']=>“SchoolName”我想说的是尝试访问字符串上的数组项我想使用此数组……使用校名数组存储学生id([西南学院]=>10002200320225[国立大学]=>1028290281[西部州长大学]=>156)请将完整数组转储到post$data数组中:[0]=>array([STU_MANG_fname]=>Jennifer[STU MANG_fname]=>patel[School Name]=>西南大学招生中心-评估部[ShipAddress1]=>900 Otay Lakes Road[ShipState]=>CALIFORNIA)我声明:$sname=array();然后在内部循环中覆盖它。;)我想要这个数组……用校名数组存储学生id([西南学院]=>10002200320225[国立大学]=>1028290281[西部州长大学]=>156)我应该使用intval()???????/$sname=array();$k=0;用于($i=0;$ii不了解数组从何而来?好吧,只是op发布了许多不同的数组,我没有看到那个,只是没有看到他是如何设置的。这一切都非常奇怪和混乱,我甚至后悔我在这里发布了:-D所以我建议它应该是什么样子,他应该如何使用它来实现预期的结果数组。。。
$data = array(
array("SchoolName" => "Roy", "StudentId" => "1000,1001,1002"),
array("SchoolName" => "MIT", "StudentId" => "2000,2001,2002"),
array("SchoolName" => "Southwestern College", "StudentId" => "3000,3001,3002"),
array("SchoolName" => "National University", "StudentId" => "4000,4001,4002"),
array("SchoolName" => "Western Governors University", "StudentId" => "5000,5001,5002"),
);
$return = array();
foreach($data as $rs){
$return[$rs['SchoolName']] = $rs['StudentId'];
}
print_r($return);
$sname = array();
$k=0;
for($i=0;$i<count($data);$i++)
{
$id_str ='';
for($j=0;$j<count($SchoolName);$j++)
{
if($data[$i]['SchoolName'] == $SchoolName[$j]){
$id_str .= intval($data[$i]['StudentId']).",";
}
$sname[$SchoolName[$j]] = $id_str;
}
}