首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >校验值嵌套数组

校验值嵌套数组
EN

Stack Overflow用户
提问于 2022-05-03 13:38:40
回答 1查看 30关注 0票数 1

一段时间以来,我一直在努力从数组中获取信息。

我有这样的数组结构:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [voornaam] => Leonie
            [naam] => xxxxxx
            [gebruikersnaam] => xxxxxxxxxxxxxxxxxxxxx
            [internnummer] => 12469
            [status] => actief
            [extravoornamen] => 
            [initialen] => 
            [roepnaam] => 
            [geslacht] => f
            [geboortedatum] => xxxx-10-xxxx
            [geboorteplaats] => xxxxxx
            [geboorteland] => België
            [rijksregisternummer] => 
            [straat] => xxxxxxxxx
            [huisnummer] => 71
            [busnummer] => 
            [postcode] => xxxx
            [woonplaats] => xxxxxxxxxxxxx
            [land] => België
            [emailadres] => xxxxxxxxxxxxxxxxxxx
            [website] => 
            [mobielnummer] => 
            [telefoonnummer] => 
            [fax] => 
            [instantmessenger] => 
            [sorteerveld] => dxxxxxxxx-leonie
            [stamboeknummer] => 1700024
            [koppelingsveldschoolagenda] => 
            [basisrol] => 1
            [klasnummer] => 6
            [referenceIdentifier] => 5235_400_0
            [scannableCode] => 34ff3123-bf41-5f67-8a37-cdf53226183a
            [isEmailVerified] => 1
            [isAuthenticatorAppEnabled] => 
            [isYubikeyEnabled] => 
            [groups] => Array
                (
                    [0] => Array
                        (
                            [id] => 8
                            [code] => officlass_pwd5af1aad026164
                            [name] => 5HW
                            [desc] => 5HW
                            [isKlas] => 1
                            [isOfficial] => 1
                        )

                    [1] => Array
                        (
                            [id] => 1906
                            [code] => 
                            [name] => MOD SPO
                            [desc] => module Sport
                            [isKlas] => 1
                            [isOfficial] => 
                        )

                )

            [advies_2] => 
            [1F/1L] => 
            [graad_(20-21)] => 2
            [jaar_(20-21)] => 4
            [DIFF periode 1] => 
            [DIFF periode 2] => 
            [DIFF periode 3] => 
            [DIFF periode 4] => 
            [DIFF periode 5] => 
            [Thuis eten] => 
            [graad 2021_2022] => 3
            [module] => MOD SPO
        )

我的目标是从‘组=>数组’中提取‘名称’,但只有当'isOfficial => 1‘时才能提取名称。

代码语言:javascript
复制
$smartschool = new SmartschoolConnection;

$sGroupName = "Leerlingen";

$leerlingen = $smartschool->getAllAccountsExtended($sGroupName);

foreach ($leerlingen as $leerling)
{

            $voornaam           =       $leerling['voornaam'];
            $achternaam         =       ucwords(strtolower($leerling['naam']));
            $gebruikersnaam     =       $leerling['gebruikersnaam'];
            $geslacht           =       $leerling['geslacht'];
            $datestring         =       date_create($leerling['geboortedatum']);
            $geboortedatum      =       date_format($datestring, 'd-m-Y');
            $internnummer       =       $leerling['internnummer'];
            $stamboeknummer     =       $leerling['stamboeknummer'];
            $klasnummer         =       $leerling['klasnummer'];
            $refid              =       $leerling['referenceIdentifier'];

 } 

我已经做了很多实验,但还是想不出答案,我想我可以用以下方法解决这个问题:

代码语言:javascript
复制
    foreach ($leerlingen as $leerling) {
        //  Check type
        if (is_array($leerling)){
            //  Scan through inner loop
            foreach ($leerling as $klas) {

                if($klas['isOfficial'] == "1") {

                    $klas = $klas['name'];

                }

            }
        } 
        else
        {

            $voornaam           =       $leerling['voornaam'];
            $achternaam         =       ucwords(strtolower($leerling['naam']));
            $gebruikersnaam     =       $leerling['gebruikersnaam'];
            $geslacht           =       $leerling['geslacht'];
            $datestring         =       date_create($leerling['geboortedatum']);
            $geboortedatum      =       date_format($datestring, 'd-m-Y');
            $internnummer       =       $leerling['internnummer'];
            $stamboeknummer     =       $leerling['stamboeknummer'];
            $klasnummer         =       $leerling['klasnummer'];
            $refid              =       $leerling['referenceIdentifier'];

        }
    } 

但是它解决了这个错误:

代码语言:javascript
复制
PHP Fatal error:  Uncaught TypeError: Cannot access offset of type string on string in /home/nginx/domains/***********/public/xacokiosk/api/classusers.php:17

有人能帮我吗?

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-03 14:58:38

您在foreach中使用了错误的值。试试这个:

代码语言:javascript
复制
foreach ($leerlingen as $leerling) {
    //  Check type
    if (is_array($leerling['groups'])){
        //  Scan through inner loop
        foreach ($leerling['groups'] as $klas) {

            if($klas['isOfficial'] == "1") {

                $group = $klas['name'];
                break;
                /*
                If you are going to accept more than one item, change the code above for this one:
                $groups[] = $klas['name'];
                */

            }

        }
    } 

    $voornaam           =       $leerling['voornaam'];
    $achternaam         =       ucwords(strtolower($leerling['naam']));
    $gebruikersnaam     =       $leerling['gebruikersnaam'];
    $geslacht           =       $leerling['geslacht'];
    $datestring         =       date_create($leerling['geboortedatum']);
    $geboortedatum      =       date_format($datestring, 'd-m-Y');
    $internnummer       =       $leerling['internnummer'];
    $stamboeknummer     =       $leerling['stamboeknummer'];
    $klasnummer         =       $leerling['klasnummer'];
    $refid              =       $leerling['referenceIdentifier'];

} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72100282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档