Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将整数拆分为字符_Php_Sql - Fatal编程技术网

Php 将整数拆分为字符

Php 将整数拆分为字符,php,sql,Php,Sql,我尝试在$row[“first”]=756987的地方制作记分表 显示数学7、生物学5、体育6、社会学9、化学家8、英语7,但它一直显示所有7 有人能帮忙解决这个问题并举例说明吗 谢谢你的帮助 foreach (str_split($row["first"]) as $v){} echo "<table> <tr><th colspan='2'>Score </th></tr> <tbody class='tbody'>

我尝试在$row[“first”]=756987的地方制作记分表 显示数学7、生物学5、体育6、社会学9、化学家8、英语7,但它一直显示所有7
有人能帮忙解决这个问题并举例说明吗
谢谢你的帮助

foreach (str_split($row["first"]) as $v){}
echo "<table>
<tr><th colspan='2'>Score </th></tr>
<tbody class='tbody'>
        <tr>
            <td>Math" . $v. "</td>
            <td>Biology" .$v "</td>
            <td>Sport" . $v. "</td>
            <td>Sociology" . $v. "</td>
            <td>Chemist" . $v. "</td>
            <td>English" . $v. "</td>
        </tr>
</tbody>
foreach(str_split($row[“first”])作为$v{}
回声“
分数
数学”$v"
生物学“$v”
运动”$v"
社会学”$v"
化学家”$v"
英语”$v"
为您的用例使用
\stru split()
list()
方法,示例如下:

$row["first"]=756987;
list($math, $bio, $sport, $socio, $chemist, $english) = \str_split($row["first"]);
echo "<table>
<tr><th colspan='2'>Score </th></tr>
<tbody class='tbody'>
        <tr>
            <td>Math " . $math. "</td>
            <td>Biology " .$bio. "</td>
            <td>Sport " . $sport. "</td>
            <td>Sociology " . $socio. "</td>
            <td>Chemist " . $chemist. "</td>
            <td>English " . $english. "</td>
        </tr>
</tbody>";
$row[“first”]=756987;
列表($math、$bio、$sport、$social、$chemist、$english)=\stru split($row[“first”]);
回声“
分数
数学“$Math”
生物学“$bio”
运动“$Sport”
社会学“$Social”
药剂师“$药剂师”
英语:“$英语。”
";
文件

list():

stru split():

$subjects=[“数学”、“生物学”、“体育”、“社会学”、“化学家”、“英语];
$row[“第一”]=756987;
回声“;
呼应“分数”;
回声“;
回声“;
$index=0;
foreach(str_分割($row[“first”])为$v){
回显“$subjects[$index]”-“$v.”;
$index++;
} 
回声“;
回声“;
回声“;

您可以一次遍历所有数字:

foreach (str_split($row["first"]) as $v){}
                                        ^^-- these two brackets here.
然后使用
$v
的最后一个值显示整个表,始终相同

改为:

$v = str_split($row["first"]); // Now $v is an *array*, not a single digit
echo "<table>
<tr><th colspan='2'>Score </th></tr>
<tbody class='tbody'>
    <tr>
        <td>Math {$v[0]}</td>
        <td>Biology {$v[1]}</td>
        <td>Sport {$v[2]}</td>
        <td>Sociology {$v[3]}</td>
        <td>Chemist {$v[4]}</td>
        <td>English {$v[5]}</td>
    </tr>
</tbody></table>";
$v=str_split($row[“first”]);//现在$v是一个*数组*,而不是一位数字
回声“
分数
数学{$v[0]}
生物学{$v[1]}
体育{$v[2]}
社会学{$v[3]}
化学家{$v[4]}
英文{$v[5]}
";

(事实上,现在我看到了,您可能还想编写两个单独的单元格-
English{$v[5]}
,而不是
English{$v[5]}

您不需要
foreach
。只需在表中执行类似操作:

print vsprintf("<tr><td>Math %s</td>
                <td>Biology %s</td>
                <td>Sport %s</td>
                <td>Sociology %s</td>
                <td>Chemist %s</td>
                <td>English %s</td></tr>",
                str_split($row["first"]);
print vsprintf(“数学%s
生物学%s
运动%s
社会学%s
化验师%s
英文%s“,
str_split($row[“first”]);

这似乎与数据库有关;我说得对吗?如果是这样,问题可能出在数据库和/或查询方式上。是的,这是数据库的事情从$FIRSTw获取数字,为什么表代码不在
{}
?仅供参考,您的代码中没有遍历foreach循环是的,我刚刚意识到这一点谢谢您的帮助这是一个比我的答案更广泛的重建,但它也更易于维护。+1
print vsprintf("<tr><td>Math %s</td>
                <td>Biology %s</td>
                <td>Sport %s</td>
                <td>Sociology %s</td>
                <td>Chemist %s</td>
                <td>English %s</td></tr>",
                str_split($row["first"]);